delphi WebBrowser控件实现对IE浏览器的各种控制
- 格式:pdf
- 大小:102.59 KB
- 文档页数:2
DelphiWebbrowser使用方法详解(一)
1.webbroser介绍
该组件是一个浏览器组件,可以显示一个指定地址的网页、设置网页打开时的主页以及对网页进行相关的操作,同时也可以对HTML 文件进行剪切、复制、粘贴、删除等操作。
该组件在Internet组件页中,属于TWebbrowser类。
它放在程序当中,可以像操作网页一样操作webbrowser控件。
2.webbrowser有哪些应用
webbrowser目前大多数都是完成自动提交或定时处理某种操作,例如:
1.网页数据采集,从别人的论坛里面把帖子采集出来,放到我们的论坛里面,例如火车头采集器;
2.发帖,不断的到百度贴吧或者其他论坛去发帖也称灌水;
3.网购,例如淘宝上限时秒抢之类的;
4.投票,不断的变换IP去投票;
5.抢火车票,不断的刷新火车票,一有票就提示抢购;
6.开发浏览器,像原来的的360,腾讯,搜狗浏览器都是基于IE 内核开发出来的;
3.同类控件
1.Indy中的idhttp 特点不可见,使用麻烦,有阻塞,但效率高;
2.ICS跟idhttp差不多
3.TEmbeddedwb第三方控件,跟webbrowser差不多,功能更强大,缺点是没有相关使用说明或资料;
本人目前使用的就是TEmbeddedWB,主要是该控件屏蔽弹窗很牛逼,而且能截获弹出窗口的信息,不管是不是带不带框架的,后续的介绍也都是基于TEmbeddedWB展开,它和webbroser的使用方法都差不多,有区别的会特意注明。
搞了N久的Webbroser,今天终于有心情把它总结出来贡献给大
家,希望能帮助到那些使用webbrowser的人们,转载请注明出处,谢谢!未完待续。
delphiWebBrowser的使用方法详解(五)/xtfnpgy/article/details/15809635网页代码:<SELECT id=fy onchange=TouchRefresh(1) name=fy> <OPTION selected value=15>每頁顯示15筆</OPTION> <OPTION value=30>每頁顯示30筆</OPTION> <OPTION value=60>每頁顯示60筆</OPTION></SELECT>1.webbrowser执行网页中的JS函数如果要执行T ouchRefresh(1)函数:webbrowser1.oleobject.document.parentwindow.ExecScript( 'TouchRefresh(1)’,'Javascript');webbrowser执行自己的JS函数:wb1.OleObject.document.parentwindow.ExecScript('alert(''自定义函数');','javascript');方法2:wb1.Navigate('javascript:alert(''执行成功!'');');2.webbrowser选择下拉列表varole : olevariantbeginole := webbrowser1.oleobject.document.GetElementByID('fy');ole.value := 60; //下拉框用value,复选框和多选框用checked:='true'ole.onchange; //调用onchange事件end;3.webbrowser按照Form提交(针对提交按钮无id和name的情况)网页代码:<FORM id=loginForm onsubmit="return validate_form()" method=post action=/pass/serviceLoginAuth2><INPUT id=passToken type=hidden name=passToken><INPUT style="DISPLAY: none" id=user class="input_kuang item errortip" name=user><INPUT style="DISPLAY: none" id=pwd class="input_kuang item errortip" value="" type=password name=pwd> <DIV class="sub_login flt_l"><INPUT class="no_bg" value=登入 type=submit></DIV>提交方法:webbrowser1.OleObject.document.forms.item('loginForm'). submit;4.webbrowser去掉滚动条在download事件中:webbrowser1.oleobject.Document.body.Scroll := 'no';webbrowser1.oleobject.Document.documentElement.style.o verflow := 'hidden';webbrowser控制滚动条滚动:webbrowser1.OleObject.document.parentwindow.scrollby(0, 100);//第一个参数横向,第二个竖向 scrollby滚动多少webbrowser1.OleObject.document.parentwindow.scrollto(0, 1000);// scrollto滚动到某个位置5.webbrowser屏蔽鼠标右键TEmbeddedWB设置DisabledPopupMenuItems属性webbrowser1.DisabledPopupMenuItems := [rcmDefault,rcmImage,rcmControl,rcmTable,rcmSelText,rcmAnch or,rcmUnKnown,rcmImageArt,rcmImgDynSrc,rcmDebug,rcmAll]6.webbrowser屏蔽网页图片TEmbeddedWB设置DownloadImages属性webbrowser1.DownloadOptions := [];7.webbrowser按照元素的属性获取元素function GetDocLinkByHref(doc : IHTMLDocument2;str_url:string):IHTMLAnchorElement;vari : Integer;label_iDispatch : iDispatch;label_element : IHTMLAnchorElement; //引用mshtmlbeginResult := nil;doc := webbrowser1.document as Ihtmldocument2;if not Assigned(doc) thenExit;for i:=0 to doc.links.length-1 dobeginlabel_iDispatch := doc.links.item(i,0);label_element := doc.links.item(I,0) as IHTMLAnchorElement;if (AnsiPos(str_url,(doc.links.item(I,0) as IHTMLElement).getAttribute('tag',0))>0)thenbeginResult := label_element;Break;end;end;end;8.webbrowser TEmbededwb屏蔽弹窗并捕获弹窗信息 //在 TEmbededwb的OnShowMessage事件中处理procedure TForm1.wb1NavigateComplete2(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);VARstr_url : string;beginWb1.OleObject.document.parentWindow.execScript('windo w.alert=null;','JavaScript');Wb1.OleObject.document.parentWindow.execScript('windo w.open=null;','JavaScript');Wb1.OleObject.document.parentWindow.execScript('windo w.close=null;','JavaScript');Wb1.OleObject.document.parentWindow.execScript('windo w.showModalDialog=null;','JavaScript');Wb1.OleObject.document.parentwindow.execscript('functio n confirm() {return true;}','Javascript');end;function TForm1.webbrowser1ShowMessage(Sender: TObject; HWND: Cardinal; lpstrText, lpstrCaption: PWideChar; dwType: Integer; lpstrHelpFile: PWideChar;dwHelpContext: Integer; var plResult: Integer): HRESULT;beginplResult := IDOK; //屏蔽alert\open\close等弹窗Result := S_OK; //屏蔽confirm确认框,并点击确认mmo1.Lines.Add(lpstrText); //lpstrText即为捕获到的弹窗内容end;屏蔽WebBrowser页面中的声音procedure CloseSound;varhWinmm: Cardinal;pwaveOutWrite: Pointer;lp: Cardinal;beginhWinmm := LoadLibrary('Winmm.dll');if hWinmm > 0 thenpwaveOutWrite := GetProcAddress(hWinmm, 'waveOutOpen');if pwaveOutWrite <> nil then beginVirtualProtect(pwaveOutWrite, 3, PAGE_EXECUTE_READWRITE, lp);Move(#C2#C2#18#$00, pwaveOutWrite^, 3);end;end;//强制Webbroser使用IE8内核 SetWBCoreIE8(8000);procedure SetWBCoreIE8(i_value:Integer);varstr_exeName : string;reg : TRegistry;begintrystr_exeName :=RightFromStr(Application.ExeName,'\',False);reg := TRegistry.Create;reg.RootKey := HKEY_LOCAL_MACHINE;if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl', False) thenbeginif not reg.KeyExists('FEATURE_BROWSER_EMULATION') then reg.CreateKey('FEATURE_BROWSER_EMULATION');end;reg.CloseKey;if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION ', False) thenbeginreg.WriteInteger(str_exeName,i_value);// if not reg.ValueExists(str_exeName) then// begin// reg.WriteInteger(str_exeName,i_value);// end;end;reg.CloseKey;reg.Free;exceptend;end;最后奉献以前收集的关于WB的文章链接:Delphi Webbrowserdelphi 模拟自动登录网页webbrowserdelphi webbrowser查找对象实现自动登录_delphi webbrowser与delphi互动WebBrowser组件和MSHTML 在Delphi中的使用Delphidelphi中Webbrowser - Max Woods - 博客园WebBrowser组件和MSHTML 在Delphi中的使用webbrowser轻松实现自动填表WebBrowser 操作记要 - 万一 - 博客园delphi中Webbrowser的使用技巧 - wystec的日志 - 网易博客delphi webbrowser 遍历网页元素Delphi7 Webbrowser制作网页表单自动提交器按步分析(1) - 中星9号 - 博客园delphi中如何在多线程环境下操作webbrowser控件delphi利用webservise登陆百度VB WebBrowser 为页面添加代码的方法_百度知道关闭webbrowser的弹出框(对话框Delphi中WebBrowser(或者EmbeddedWebBrowser)控件打开部分网站报“Invalid floating point operation”异常的解决方法- XuXn - 博客园Delphi中webbrowser的document 对象的属性方法事件_硬软兼得博客_新浪博客Delphi获取句柄并发送消息delphi WebBrowser获取iframe页面内容Twebbrowser如何写多线程? - Delphi _ 网络通信_分布式开发【发现】如何屏蔽掉WebBrowser在刷新网页等时候发出的声音- Boringlamb - 博客园对ExtendedWebBrowser的再扩展(续)_呼吸空间_百度空间接收IWebBrowser2的自动化事件_My_百度空间delphi WebBrowser 开发浏览器_SAP学习_abap_百度空间【转】WebBrowser的Cookie操作(与CookieContainer的关系)_奎宇工作室_百度空间蓝鸟-Delphi的WebBrowser改造,对网页中Alter等对话框的改造方法(转载)如何找到webbrowser打开网页中flash的接口?能否用这个接口控制flash的播放?_VC高级研究_积木群组webBrowser获取网页flash句柄模拟单击的问题- .NET技术_ C#VB 如何向 WebBrowser1 中的flash发送左边点击事件 - VB _ 网络编程用WebBrowser实现HTML界面的应用扩展WebBrowser 控件DragWebBrowser FlashGameWebBrowser_C# 视角_CS程序员之窗WebBrowser 设置代理(100分) - Delphi _ 网络通信_分布式开发屏蔽WebBrowser页面中传出来的声音 - jxgxy - 博客园可以对同一个程序中的多个WebBrowser设置不用的代理服务器吗?本地:双线路、双IP、双网卡设置上网_我是谁?—Andy Gu_百度空间Delphi中使用EmbeddedWB屏蔽指定内容的网页对话框- Patrick Pullman - 博客园Web Browser Control –Specifying the IE Version - Rick Strahl's Web LogWebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下? - BobLiu - 博客园WebBrowser 中,无法释放内存? - CSDN论坛 - 为什么浏览器会使用多进程架构。
Delphi禁止WebBrowser弹出IE的对话框.docWebBrowser如何关闭弹出的alert对话框,我找了很久也没有解决办法。
我的程序是用delphi写的。
有试过几种方法。
第一种用WMActivate(var Msg: TWMActivate); message WM_ACTIVATE; 事件在正常情况下可以自动关闭,但我的程序是运行在系统托盘的,在最小化到托盘后,这个事件就不起作用了。
第二种用obj.parentWindow.execScript "function showModalDialog(){return;} 类似的方法,网页本页面弹出的对话框可以屏蔽,但我的程序调用了某个ASPX 页面,它是提交后返回时弹出对话框的,也不起作用了。
对话框弹出的时候,只有WebBrowser控件不可用,程序还是正常运行的,我就用个Timer 来FindWindow('IEFrame',nil) 然后SendMessage关闭事件,但是根本没效果。
程序只差一个功能完工了啊,500高分求解!问题补充:~还有匿名回答啊可以了,多谢,到这边拿分吧/question/83500340.html/question/83092023.html多任务网页定时刷新器/abingpow/blog/item/42cb0fd731bc3ddaa044dffe.html最佳答案在CSDN上有类似的问题,参见/u/20080313/00/5e2add09-6103-405f-8f6b-6bbb220e9cfd. html以下代码经测试有用(2011年1月5日测试)。
function CallBackProc(H, HMainForm: hwnd): Boolean; stdcall;varhChild : hwnd;beginResult := True;if GetParent(H) = HMainForm then begin //可以在这里进一步判断类名,以免关掉其他弹出窗口hChild := FindWindowEx(H, 0, PChar('Button'), PChar('确定'));if hChild > 0 then SendMessage(hChild, BM_Click, 0, 0);end;end;procedure TForm1.Timer1Timer(Sender: TObject);beginEnumWindows(@CallBackProc, Self.Handle);end;procedure TForm1.Button1Click(Sender: TObject);beginSelf.WebBrowser1.Navigate('C:\Documents and Settings\jiaotongju\桌面\test2\test.htm');end;procedure TForm1.Button2Click(Sender: TObject);beginSelf.Timer1.Enabled := True;//Web页面装载完毕后开启Timerend;procedure TForm1.FormCreate(Sender: TObject);beginSelf.Timer1.Enabled := False;Self.Timer1.Interval:= 100;end;附CSDN的原稿:在CSDN上有类似的问题,参见/u/20080313/00/5e2add09-6103-405f-8f6b-6bbb220e9cfd. html我程序中用WebBrowser打开一个网页,点击网页上的一个提交按钮时会弹出一个对话框(对话框是网页中的alert函数产生),造成程序的执行中断,需要手工点一下(或按回车)确定按钮才能继续,现在我想通过程序自动关闭这个对话框,请大家帮帮我!楼上的方法没用的,webbrowser里的js弹出的对话框是堵塞的,当用程序调用click方法时,代码是堵塞在click里的.俺不知道楼上您和楼主的JS代码是什么样子的。
delphi webbrowser 使用方法Delphi WebBrowser 使用方法Delphi WebBrowser是一种强大的组件,可以嵌入web页面到Delphi应用程序中。
本文将详细介绍使用Delphi WebBrowser的各种方法。
1. 安装和引用要使用Delphi WebBrowser,首先需要做以下几步操作:1.下载并安装Delphi WebBrowser组件包。
2.打开Delphi IDE,创建新项目或打开现有项目。
3.在项目中导入WebBrowser组件包(在IDE的”Component”菜单中选择”Install Packages”)。
2. 创建和显示WebBrowser使用Delphi WebBrowser,你可以轻松创建和显示一个WebBrowser窗口。
以下是一个简单的示例:procedure (Sender: TObject);beginWebBrowser1 := (Self);:= Self;:= alClient;('end;在上述示例中,我们使用Form的OnCreate事件创建了一个WebBrowser对象,并将其展示在一个窗口上。
属性Align设置为alClient,将WebBrowser充满整个窗口。
最后,通过调用Navigate 方法,我们使WebBrowser加载了指定的网址。
3. 与Web页面交互Delphi WebBrowser允许你与嵌入的Web页面进行交互。
以下是一些常用方法的示例:执行JavaScript代码你可以使用Delphi WebBrowser的方法来执行JavaScript代码并获取返回值。
以下示例演示了如何执行JavaScript代码并将结果显示在一个Label控件中:procedure (const ACode: string);varvJsResult: OleVariant;begin// Execute JavaScript code and get the resultvJsResult := (ACode, 'JavaScript');:= vJsResult;end;操作DOM元素要操作Web页面中的DOM元素,你可以使用Delphi WebBrowser 的方法来获取和修改元素的属性和内容。
Delphi 中WebBrowser控件详解实例2008-10-18 下午 06:58很久都没有原创了,前几天帮朋友做了个网址发布程序,主要应用到了WebBrowser控件。
今天主要给大家演示一下过程,让大家学习一下Delphi工具。
WebBrowser功能:1。
自动加载网页2。
去除WebBrowser滚动条3。
WebBrowser自身打开页面4。
禁止右键1。
首先,新建一个FROM窗体:2。
加入一个WEBBROWSER控件3。
调整后如下:4.这样一个webbrowser就完成了,下一步我们来让程序打开后自动加载一个网页。
核心代码:WebBrowser1.Navigate('');双击窗体灰色处,对窗体进行初始化,在代码窗口中输入(Begin 与 End间输入核心代码):procedure TForm1.FormCreate(Sender: TObject);beginWebBrowser1.Navigate(''); //窗体初始化完成WEBBROWSER加载一个网页end;5。
下面我们来实现禁止WEBBROWSER控件的滚动条功能:核心代码:WebBrowser1.oleobject.Document.bod y.Scroll:= ‘no’;利用这个代码去掉滚动条的前提是webbrowser中必须有打开的网页,也就是在网页加载完完毕后再去掉滚动条。
所以首先要判断页面是否加载完毕,如果加载完毕,就执行上面的语句去掉滚动条。
这时就要引入一个按扭控件来触发程序加入SPEEDBUTTEN调整形后:好了,现在可以实现禁止滚动条的功能了:第一步:在WebBrowser1DocumentComplete事件中置一个标志tag:=1(代表加载完毕)单击WEBBROWSER控件,在WebBrowser属性的EVENS事件中找到WebBrowser1DocumentComplete (双击)然后在代码窗口中输入:procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);begintag:=1; //去掉Webbrowser1滚动条的标志end;对SpeedButten控件操作:(双击onClick)加入如下代码:procedure TForm1.SpeedButton1Click(Sender: TObject); varDoc: IHTMLDocument2;begintag := 0; //去掉Webbrowser1滚动条的标志WebBrowser1.Navigate2(’’);while(tag=0) do Application.ProcessMessages; WebBrowser1.oleobject.Document.body.Scroll := ‘no’; end;注意:使用前必须在uses中加入mshtml;这样WebBrowser就禁止了滚动条。
delphi TWebBrowser组件使用详解该组件是一个浏览器组件,可以显示一个指定地址的网页、设置网页打开时的主页以及对网页进行相关的操作,同时也可以对HTML文件进行剪切、复制、粘贴、删除等操作。
该组件在Internet组件页中。
1.属性(1)AddressBar属性设置是否显示地址栏,在TWebBrowser中没有用。
语法:property AddressBar: WordBool;(2)Busy属性确定Web浏览器组件是否正在导航到一个新的URL地址或正在下载文档。
语法:property Busy: WordBool;示例:如果该属性值为True,则在开始一个新的操作前,可用Stop方法中止当前操作,然后再导航到其他的页面,代码如下:procedure TForm1.BitBtn1Click(Sender: TObject);beginif WebBrowser1.Busy thenWebBrowser1.Stop;WebBrowser1.Navigate('');end;(3)Container属性访问Web浏览器父类或容器的接口。
语法:property Container: IDispatch;示例:如果Web浏览器没有一个具有Automation接口的容器,则该属性的值为空。
否则可以通过返回的接口,访问Web浏览器父类或容器,代码如下:if WebBrowser1.Container <> nil thenbeginWebBrowser1.Stop;endelseShowMessage('Web浏览器没有一个具有Automation接口的容器');(4)ControlInterface属性访问WebBrowser组件接口,这个接口允许一个Automation控制器访问Web浏览器的属性、方法和事件。
语法:property ControlInterface: IWebBrowser2;示例:显示WebBrowser1组件的名称,代码如下:Showmessage();(5)FullName属性指定主机上Web浏览器组件的可执行文件的完整的合法路径名。
Delphi TEdgeBrowser 是一款基于 Microsoft Edge 的浏览器控件,适用于 Delphi 编程语言。
它提供了一种简单而强大的方式,使开发人员能够在他们的 Delphi 应用程序中嵌入现代的 Web 浏览体验。
在本文中,我们将介绍 Delphi TEdgeBrowser 的用法,包括如何在Delphi 项目中集成该控件,以及如何利用其丰富的功能实现各种需求。
一、引入 Delphi TEdgeBrowser 控件要开始使用 Delphi TEdgeBrowser,首先需要确保你已经安装了最新版本的 Delphi,并且已经下载了 Delphi TEdgeBrowser 的 SDK。
一旦确认这些前提条件已满足,你就可以在 Delphi 项目中引入TEdgeBrowser 控件了。
在 Delphi 的界面设计器中,通过组件面板找到 TEdgeBrowser 控件,并将其拖拽到你的窗体或其他容器控件上即可。
二、基本用法一旦将 TEdgeBrowser 控件添加到你的 Delphi 项目中,你就可以开始享受其强大的功能了。
通过简单的几行代码,你就可以加载网页、执行 JavaScript 脚本以及与网页内容进行交互。
以下是一个简单的示例代码,演示了如何加载一个网页:```pascalprocedure TForm1.FormCreate(Sender: TObject);beginEdgeBrowser1.Navigate('end;```三、与网页交互除了简单的加载网页之外,Delphi TEdgeBrowser 还提供了丰富的API,使开发人员能够与嵌入的网页内容进行交互。
你可以通过调用TEdgeBrowser 控件提供的方法和事件来执行各种操作,例如执行JavaScript、修改网页内容、捕获网页事件等。
以下是一个演示如何执行 JavaScript 脚本的示例代码:```pascalprocedure TForm1.Button1Click(Sender: TObject);beginEdgeBrowser1.ExecuteScript('alert("Hello, world!")');end;```四、事件处理Delphi TEdgeBrowser 还支持各种事件,使开发人员能够监控和响应浏览器控件的各种状态变化和用户操作。
delphi edgebrowser 用法Delphi EdgeBrowser是Delphi编程语言中的一个组件,它提供了在应用程序中嵌入和使用Microsoft Edge浏览器的功能。
Delphi是一种强大的开发工具,它集成了许多组件和库,使开发人员能够构建各种类型的应用程序,包括具有浏览器功能的应用程序。
在本文中,我将逐步介绍Delphi EdgeBrowser的用法,帮助您了解如何使用它来嵌入和控制Microsoft Edge浏览器。
第一步:准备环境首先,您需要确保已安装Delphi开发工具。
您可以从Embarcadero官方网站下载免费试用版或购买完整版。
安装完成后,启动Delphi并创建一个新的项目。
第二步:添加EdgeBrowser组件在Delphi中,您可以通过“组件”面板查看和管理可用的组件。
请通过单击Delphi窗口右侧的“组件”标签将其打开。
在“组件”面板中,您可以查找并选择“EdgeBrowser”组件。
将其拖放到您的窗体上。
第三步:配置EdgeBrowser组件添加了EdgeBrowser组件之后,我们需要对其进行一些配置。
选中EdgeBrowser组件,并查看对象属性面板。
您可以通过双击组件或在“对象属性名称”框中手动选择该组件。
在属性面板中,您可以设置EdgeBrowser的各种属性,以满足您的需求。
其中一些重要的属性包括:- URL: 设置要加载的网页的URL。
- Visible: 设置EdgeBrowser是否可见。
- Navigate: 导航到指定URL。
您可以根据需要分别配置这些属性。
例如,将URL属性设置为“第四步:添加事件处理程序为了与EdgeBrowser组件进行交互,您可以使用事件处理程序来捕获特定事件并执行自定义代码。
例如,在用户点击链接时,您可能希望打开链接的新标签页。
要添加事件处理程序,请选择EdgeBrowser组件并在属性面板中查找“事件”选项卡。