delphi TWebBrowser组件使用详解

合集下载

DelphiWebbrowser使用方法详解(一)

DelphiWebbrowser使用方法详解(一)

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的人们,转载请注明出处,谢谢!未完待续。

delphi中TWebBrowser控件增强版

delphi中TWebBrowser控件增强版
property EnableFlatScrollBars boolean read FlatScrollBar write
FlatScrollBar;
property EnableContextMenu boolean read RightClickMenu write
RightClickMenu;
function OnFrameWindowActivate(const fActivate BOOL) HRESULT; stdcall;
function ResizeBorder(const prcBorder PRECT;
const pUIWindow IOleInPlaceUIWindow;
DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = $00001000;
DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = $00002000;
DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = $00004000;
dwFlags DWORD;
dwDoubleClick DWORD;
pchHostCss polestr;
pchHostNS polestr;
end;
IDocHostUIHandler = interface(IUnknown)
['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
delphi中TWebBrowser控件增强版 .
delphi中TWebBrowser控件增强版,增加控制浏览器的滚动条,右键菜单,3D边框属性,可以通过设置属性隐藏TWebBrowser的滚动条,右键菜单,3D边框,使之不可见。控件代码如下:

用TWebBrowser组件在DELPHI中POST数据和取得网页源文件

用TWebBrowser组件在DELPHI中POST数据和取得网页源文件

如果能够成功的连接返回 True,否则返回 False;
以下是一个判断当前计算机是否联网的例子:
procedure TForm1.Button1Click(Sender: TObject);
begin
if InternetCheckConnection('/', 1, 0) then
以下是一个判断当前计算机是否可以获得 Internet 服务的例子:
function TForm1.CheckOffline: boolean;
var
ConnectState: DWORD;
StateSize: DWORD;
begin
ConnectState:= 0;
end;
end.
< 2:WinInet函数相关 >
DWORD dwConnectState;
CString strConnectState;
BOOL bOK = InternetGetConnectedState( &dwConnectState, 0);
IN DWORD dwOption,
OUT LPVOID lpBuffer,
IN OUT LPDWORD lpdwBufferLength
);
参数的意义是:
hInternet:查询对象的 Internet 句柄(全局查询时为 nil),
dwOption:查询的项目;
PostStr:='Login.Token1=04538&Login.Token2=*******&Submit=%B5%C7+%C2%BC';
target:=NULL;

Delphi TWebBrowser编程简述

Delphi TWebBrowser编程简述
WebBrowser.ExecWB(15,1) 好像是撤销,有待确认
WebBrowser.ExecWB(17,1) 全选
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45, 关闭窗体无提示
----------------------------------------------------------
WebBrowser.ExecWB(4,1) 保存网页
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印预览
WebBrowser.ExecWB(8,1) 打印页面设置
WebBrowser.ExecWB(10,1) 查看页面属性
if Doc.QueryCommandEnabled('Copy') then
Doc.ExecCommand('Copy',false,EmptyParam);
end;
查找: 参考第九条“查找”功能。
-----------------------------------------------------------------------------------
EmptyParam);
打印、打印预览和页面设置: 调用“打印”、“打印预览”和“页面设置”对话框(IE5.5及以上版本才支持打印预览,故实现应该检查此命令是否可用)。
ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, EmptyParam,
TWebBrowser控件打开包含了js代码本地的网页文件就会弹出错误对话框

delphiWebBrowser的使用方法详解(五)

delphiWebBrowser的使用方法详解(五)

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论坛 - 为什么浏览器会使用多进程架构。

webbrowser 用法

webbrowser 用法

一、webbrowser 的定义与作用webbrowser,即网页浏览器,是一种用于访问互联全球信息站网页的软件工具。

通过webbrowser,用户可以输入网页位置区域并访问网页内容,浏览器还可以展示各种网页元素,如文字、图片、视瓶和动画等。

由于其重要作用,webbrowser在现代社会中被广泛使用,成为人们日常生活中不可或缺的工具之一。

二、webbrowser 的基本使用方法在使用webbrowser时,我们通常需要了解一些基本的使用方法,以便更加高效地浏览网页内容。

1. 打开 webbrowser要打开webbrowser,只需在计算机桌面或程序菜单中找到已安装的浏览器图标,并双击打开即可。

常见的webbrowser包括Google Chrome、Mozilla Firefox、Microsoft Edge和Safari等。

用户可以根据自己的喜好和需求选择合适的浏览器。

2. 输入全球信息站在webbrowser的位置区域栏中输入网页的URL位置区域,即可打开相应的网页。

用户也可以利用webbrowser提供的搜索引擎功能,在搜索框中输入关键词进行网页搜索。

3. 浏览网页内容一旦打开了网页,用户可以通过滚动页面、点击信息或者进行搜索等操作来浏览网页内容。

webbrowser还提供了书签功能,用户可以将常用的网页添加到书签栏中,以便快速访问。

4. 下载和管理文件webbrowser允许用户在网页上下载各种文件,如文档、图片、音频和视瓶等。

用户可以在下载管理器中查看和管理已下载的文件。

5. 多标签浏览现代webbrowser支持多标签浏览功能,用户可以在同一个浏览器窗口中打开多个标签页,方便在不同页面之间进行切换和比较。

6. 清除浏览数据webbrowser还提供清除浏览数据的功能,用户可以清除浏览历史、缓存文件和 Cookie 等数据,以保护个人隐私并提升浏览速度。

三、webbrowser 的高级功能与技巧除了基本的浏览网页功能外,webbrowser还具有一些高级功能和技巧,可以帮助用户更好地利用浏览器。

delphi webbrowser 使用方法

delphi webbrowser 使用方法

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控件详解实例

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的webbrowser如何访问网页中某个frame里的组件?

delphi的webbrowser如何访问网页中某个frame里的组件?

delphi的webbrowser如何访问网页中某个frame里的组件?先取出对应frame的document,再取想要的元素,给你我写的函数,新人是应该带着进门的……//框架获取functionGetDocument(Document:IHTMLDocument2;Index:integer):IHTM LDocument2;//框架获取var frame_dispatch:IDispatch;framed:IHTMLWindow2;ole_index:OleVariant;beginole_index:=Index;frame_dispatch:=Document.Frames.IT em(ole_index);if frame_dispatch <> nil thenbeginframed:=frame_dispatch as IHTMLWindow2;result:=framed.Document as IHTMLDocument2;endelsebeginresult:=nil;end;end;//点击指定位置或名称的链接,或者给指定的名称或序号的元素赋值procedureGetItem(Document:IHTMLDocument2;Index:String;IsClick:Boolean;State:integer;Value:string);var IDoc1: IHTMLDocument2;ielc: IHTMLElementCollection;ihtml:IHTMLElement;input:IHTMLInputElement;TextArea:IHTMLTextAreaElement;i:integer;beginDocument.QueryInterface(IHTMLDocument2,iDoc1);ielc:=idoc1.Get_all;if(trystrtoint(Index,i))thenbeginif(IsClick)thenbeginihtml:=ielc.item(strtoint(Index),0) as IHTMLElement;ihtml.click;endelsebegincase State of0 :begininput:=ielc.item(strtoint(Index),0) as IHTMLInputElement;input.value:=Value;end;1 :beginTextArea:=ielc.item(strtoint(Index),0) as IHTMLTextAreaElement;TextArea.value:=Value;end;end;end;endelsebeginif(IsClick)thenbeginihtml:=ielc.item(Index,0) as IHTMLElement;ihtml.click;endelsebegincase State of0 :begininput:=ielc.item(Index,0) as IHTMLInputElement; input.value:=Value;end;1 :beginTextArea:=ielc.item(Index,0) as IHTMLTextAreaElement; TextArea.value:=Value;end;end;end;end;end;这是我百度的技术博客,不懂可以去上边看,或者问……。

delphi中 TWebBrowser的各种用法 获得网页中变量值

delphi中 TWebBrowser的各种用法  获得网页中变量值
end;
注意:使用前必须在uses中加入mshtml;
==========================题外话 去掉滚动条后如何翻页呢用如下代码
var
Doc IHTMLDocument2;
begin
Doc =WebBrowser1.Document as IHTMLDocument2;
4.调用网页中已知对象
src = WebBrowser1.OleObject.Document.getElementByID('img1').src
该方法其实就是javascript中的 getElementByID
5.获取页面中所有的frame
使用DHTML。
背景图片 WebBrowser1.OleObject.Document.body.background = 'bg.gif'
背景颜色 WebBrowser1.OleObject.Document.body.bgcolor = '#eeeeee'
begin
tag = 0; 去掉Webbrowser1滚动条的标志
WebBrowser1.Navigate2(’’);
while (tag=0) do
Application.ProcessMessages;
WebBrowser1.oleobject.Document.body.Scroll = ‘no’;
ppdisp = webBrowser.Application;
end;
屏蔽WebBrower的右键菜单
放一个ApplicationEvents控件,在ApplicationEvents的事件OnMessage中设置如下代码: (ApplicationEvents控件在delphi中的additional选项卡上找)

Delphi中WebBrowser的使用技巧汇总

Delphi中WebBrowser的使用技巧汇总
end;
屏蔽WebBrower的右键菜单
放一个ApplicationEvents控件,在ApplicationEvents的事件OnMessage中设置如下代码: (ApplicationEvents控件在delphi中的additional选项卡上找)
OnCommandStateChange = procedure(Sender: TObject; Command: Integer; Enable: WordBool) of object;
当执行新的命令时发生,Command为命令标识,Enable为是否允许执行该命令.
OnTitleChange = procedure(Sender: TObject; const Text: WideString) of object;
第一步:在WebBrowser1DocumentComplete事件中置一个标志tag:=1(代表加载完毕) 代码如下:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch;
var URL: OleVariant);
SetNoteStr :=SetNoteStr+’<br><p align=center><font size=+2 color=#FFFFFF>实现webbrowser控件中显示动态html的程序代码</font></p>’;
StrStream:=TStringStream.Create(SetNoteStr);
begin
if WebBrowser1.Application = pDisp then showmessage(’页面已全部下载完毕’)

delphi tedgebrowser 用法

delphi tedgebrowser 用法

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 edgebrowser 用法Delphi是一个流行的编程语言和集成开发环境(IDE),用于开发Windows平台上的应用程序。

EdgeBrowser是Delphi的一个第三方组件,它允许在应用程序中嵌入和操作Microsoft Edge浏览器。

使用Delphi EdgeBrowser可以实现许多有趣和强大的功能,如在应用程序中加载网页、操纵DOM元素、监控浏览器事件等。

首先,要使用Delphi EdgeBrowser组件,我们需要下载并安装它。

可以在互联网上搜索“Delphi EdgeBrowser”来找到并下载合适的版本。

下载完成后,解压缩文件并将DLL文件添加到Delphi项目的组件路径中。

接下来,我们需要在Delphi应用程序中创建一个TWebBrowser组件来承载EdgeBrowser。

在Delphi的窗体设计器中,将TWebBrowser组件拖放到窗体上。

然后,通过设置TWebBrowser组件的属性来指定EdgeBrowser的行为。

例如,可以设置TWebBrowser的Url属性来加载指定的网页。

在应用程序中加载网页后,我们可以使用EdgeBrowser的一些方法和属性来与网页进行交互。

例如,可以使用EdgeBrowser的Navigate方法在TWebBrowser中加载指定的URL。

可以使用EdgeBrowser的Stop方法停止加载网页。

可以使用EdgeBrowser的Refresh方法刷新当前网页。

Delphi EdgeBrowser还提供了许多其他功能,如在网页上执行JavaScript代码、截取网页的截图、获取网页元素等。

可以使用EdgeBrowser的ExecuteScript 方法来执行JavaScript代码。

可以使用EdgeBrowser的Capture方法来截取网页的截图。

可以使用EdgeBrowser的DOM接口来获取和操作网页元素。

除了上述基本功能之外,Delphi EdgeBrowser还提供了一些高级功能,如监控浏览器事件、拦截和修改HTTP请求等。

delphi twebbrowser的navigate方法

delphi twebbrowser的navigate方法

delphi twebbrowser的navigate方法Delphi TWebBrowser的Navigate方法简介在Delphi中,TWebBrowser控件提供了浏览网页的功能。

其中,Navigate方法是最常用的方法之一,用于导航到指定的网页。

方法参数Navigate方法的参数有如下几种:1.URL:指定要导航的网页地址,可以是完整的URL,也可以是相对路径。

2.Flags:指定如何打开网页,包括以下常用选项:–navNoHistory:不将导航记录添加到浏览器历史记录。

–navBrowserBar:如果导航失败,则尝试将URL传递给浏览器工具栏进行处理。

–navHyperlink:将URL视为一个超链接,而不是一个普通网页地址。

3.TargetFrameName:指定在哪个框架中显示网页内容,默认为”_self”,表示在当前框架中显示。

导航的常见用法以下是使用Navigate方法进行网页导航的几种常见用法:•导航到指定的URL:('•导航到相对路径的网页:('subfolder/');•导航到一个超链接:('mailto:', navHyperlink);导航的注意事项在使用Navigate方法导航网页时,需要注意以下几点:1.确保WebBrowser控件已经正确地创建和配置。

2.在导航前,可以通过检查WebBrowser控件的ReadyState属性来判断是否已经加载完毕。

3.可以通过WebBrowser控件的OnBeforeNavigate2事件来取消导航或修改导航的参数。

结论Delphi中的TWebBrowser控件的Navigate方法是一个非常方便和强大的功能,能够轻松实现网页导航的操作。

通过灵活运用其参数,开发者可以根据实际需求进行网页导航的控制和定制。

深入了解Navigate方法的更多功能导航到指定的URL使用Navigate方法最常见的用法就是导航到指定的URL,这个URL可以是完整的网页地址,比如”导航的常见选项Navigate方法的第二个参数Flags可以指定如何打开网页。

WebBrowser控件使用详解

WebBrowser控件使用详解

WebBrowser控件使用详解WebBrowser 的事件Private Events Description BeforeNavigate2 导航发生前激发,刷新时不激发CommandStateChange 当命令的激活状态改变时激发。

它表明何时激活或关闭Back和Forward菜单项或按钮DocumentComplete 当整个文档完成是激发,刷新页面不激发DownloadBegin 当某项下载操作已经开始后激发,刷新也可激发此事件DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件NavigateComplete2 导航完成后激发,刷新时不激发NewWindow2 在创建新窗口以前激发OnFullScreen 当FullScreen属性改变时激发。

该事件采用VARIENT_BOOL的一个输入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)OnMenuBar 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。

VARIANT_TRUE是可见,VARIANT_FALSE是隐藏OnQuit 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发OnStatusBar 与OnMenuBar调用方法相同,标示状态栏是否可见。

OnToolBar 调用方法同上,标示工具栏是否可见。

OnVisible 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数StatusTextChange 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏TitleChange Title有效或改变时激发一些使用技巧1.禁止右键看到很多关于WebBrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该方法在我们想使用Webbrowser编辑网页(Webbrowser1.Document.execCommand "editMode")的时候有很多弊端,比如不能显示选中的文本等。

delphi中Webbrowser的使用技巧

delphi中Webbrowser的使用技巧

WebBrowser组件和MSHTML 在Delphi 中的使用由于项目需要,近来研究了一下WebBrowser组件和MSHTML 在Delphi中的使用,整理了一下这段时间研究的结果,写下来一是方便大家查阅,二也可以加深我自己的记忆.希望能对大家有所帮助… …,同时,如果有更好的处理方式或者我没有提到的问题,请大家也告诉我哦, 咱们一块进步… ...,其中一部分是我从网络中搜集的资料,谢谢那些兄弟们… … MSHTML把HTML页面中的元素封装成了IHTMLInputElement、 IHTMLInputButtonElement、IHTMLInputTextElement、IHTMLTextAreaElement、IHTMLTitleElement、IHTMLFormElement 等等组件接口。

在程序中可以通过MSHTML提供的IHTMLDocument2接口得到整个Document对象,IHTMLElementCollection接口得到所有页面元素的集合,通过该接口的Item方法可以得到具体的某个组件,然后设置和读取该组件的属性值。

下面是一些常用功能的事例代码.1.打开某个页面:web.Navigate(ExtractFilePath(Application.ExeName) + 'Template/login.html'); 2.取出页面中某个HtmlElement的Value属性值:function GetValueByElementName(web: TWebBrowser; elementName: string; index: integer): string;beginresult := (((web.Document as IHTMLDocument2).body.all as IHTMLElementCollection).item(elementName, index) as IHTMLInputElement).valueend;3.给HtmlElement设置Value属性procedure SetValueTextAreaName(web: TWebBrowser; elementName, value: string;index: integer);begin(((web.Document as IHTMLDocument2).body.all asIHTMLElementCollection).item(elementName, index) as IHTMLTextAreaElement).value := value;end;4.判断页面执行结果是否成功因为Web应用中如果出错的一般是采用错误页面的方式呈现给最终用户,所以我们也无法抓到Http错误,只能通过在webBeforeNavigate2事件中将URL参数记录到全局变量中, 然后在webDocumentComplete事件中根据URL参数和全局变量中的URL参数来判断执行结果是否正确.当然,这样需要将页面地址编码到代码中,降低了灵活性,但是这也是我能想到的唯一的方法,如果大家有什么好的方法,请告诉我哦.5.屏蔽鼠标右键和某些快捷键本功能需要在webBrowser的窗口中加入ApplicationEvents组件,设置它的OnMessage事件代码如下即可.procedure TwebAdapterForm.ApplicationEvents1Message(var Msg: tagMSG;var Handled: Boolean);const_KeyPressMask = $80000000;begin//禁用右键with Msg dobeginif not IsChild(web.Handle, hWnd) then Exit;Handled := (message = WM_RBUTTONDOWN) or (message = WM_RBUTTONUP) or (message = WM_CONTEXTMENU);end;//禁止Ctrl + N//禁止Ctrl + F//禁止Ctrl + Aif Msg.message = WM_KEYDOWN thenbeginif ((Msg.lParam and _KeyPressMask) = 0) and(GetKeyState(VK_Control) <0) and ((Msg.wParam = Ord('N'))or (Msg.wParam = Ord('F')) or (Msg.wParam = Ord('A'))) thenbeginHandled := True;end;end;end;6.在页面关闭的时候,同时关掉包含页面的VCL Form.(仅限 InternetExplorer 6.0)本功能需要卸载掉Delphi自带的 WebBrowser组件,安装ActionX组件(Microsoft Internet Controls V1.1),而且以后的程序只能运行在安装有Internet Explorer 6.0 的环境下.具体方法如下:在WebBrowser组件的OnWindowClosing事件中,输入self.close; 代码即可.如果需要阻止窗口的关闭, 设置CanClose参数的值为Flase.7.如何将页面中超链接新开的页面窗口包到指定的VCL窗口中.procedure TForm1.webNewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);varform : TForm1;beginform := TForm1.Create(nil);ppDisp := form.web.DefaultDispatch;form.Show;end;8.在WebBrowser加载html页面完成后,在页面顶端插入HTML代码, 下面两种方式斗可以.{1. ----------------------------------------------------------------} procedure TForm1.Button1Click(Sender: TObject);varRange: IHTMLTxtRange;beginRange := ((WebBrowser1.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;Range.collapse(False);Range.pasteHTML('<br/><b>Hello!</b>');end;{2. ----------------------------------------------------------------} procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;const pDisp: IDispatch; var URL: OleVariant);varWebDoc: HTMLDocument;WebBody: HTMLBody;beginWebDoc := WebBrowser1.Document as HTMLDocument;WebBody := WebDoc.body as HTMLBody;WebBody.insertAdjacentHTML('BeforeEnd', '<h1>Hello World!</h1>');end;9.将页面中显示的内容全部选中,然后粘贴到Word文档中.WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT);//全选网页WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT); //复制网页WordDocu.Range.Paste; //word文档粘贴WebBrowser1.ExecWB(OLECMDID_UNDO, OLECMDEXECOPT_DODEFAULT); //取消全选注:WebBrowser的Document属性值和WordDocument的Document属性值必须都不为nil. 10.如何解决网页不响应回车事件public{ Public declarations }procedure MsgHandle(var Msg :TMsg; var Handled :Boolean);end;varForm1: TForm1;FOleInPlaceActiveObject :IOleInPlaceActiveObject;implementation{$R *.DFM}procedure TForm1.MsgHandle(var Msg :TMsg; var Handled :Boolean);variOIPAO :IOleInPlaceActiveObject;Dispatch :IDispatch;beginif WebBrowser1 =nil thenbeginHandled :=False;Exit;end;Handled :=(IsDialogMessage(WebBrowser1.Handle, Msg) =True);if (Handled) and (not WebBrowser1.Busy) thenbeginif FOleInPlaceActiveObject =nil thenbeginDispatch :=WebBrowser1.Application;if Dispatch <>nil thenbeginDispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);if iOIPAO <>nil thenFOleInPlaceActiveObject :=iOIPAO;end;end;end;if FOleInPlaceActiveObject <>nil thenif ((Msg.message =WM_KEYDOWN) or (Msg.Message =WM_KEYUP)) and ((Msg.wParam =VK_BACK) or (Msg.wParam =VK_LEFT) or (Msg.wParam =VK_RIGHT)) thenelseFOleInPlaceActiveObject.TranslateAccelerator(Msg);end;procedure TForm1.FormCreate(Sender: TObject);beginApplication.OnMessage :=MsgHandle;end;procedure TForm1.FormDestroy(Sender: TObject);beginFOleInPlaceActiveObject :=nil;end;11.如何在WebBrowser中调用当前页面中的javascript函数SayHello()WebBrowser1.OleObject.Document.parentWindow.execScript('SayHello()', 'javascript');//or(WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript('SayHello()', 'javascript')//orwebrowser1.document.script.SayHello();delphi中Webbrowser的使用技巧1.获取网页中变量的值例如:htm中<script> var currIDS=123</script>程序中可以这样调用 id :=Form1.WebBrowser1.OleObject.Document.script.currIDS备注:变量可以是javascript定义的,也可以是vbscript定义的,如果Webbrowser1中找不到该变量,调用会触发一个异常事件,即变量currIDS不存在。

TWebBrowser 使用技巧

TWebBrowser 使用技巧

Get the Url of a Hyperlink when the Mouse moves Over a TWebBrowser DocumentThe TWebBrowser Delphi component provides access to the Web browser functionality from your Delphi applications.In most situations you use the TWebBrowser to display HTML documents to the user - thus creating your own version of the (Internet Explorer) Web browser. Note that the TWebBrowser can also display Word documents, for example.A very nice feature of a Browser is to display link information, for example, in the status bar, when themouse hovers over a link in a document.The TWebBrowser does not expose an event like "OnMouseMove". Even if such an event would exist it would be fired for the TWebBrowser component - NOT for the document being displayed inside the TWebBrowser.In order to provide such information (and much more, as you will see in a moment) in your Delphiapplication using the TWebBrowser component, a technique called "events sinking" must beimplemeted.WebBrowser Event SinkTo navigate to a web page using the TWebBrowser component you call the Navigate method.The Document property of the TWebBrowser returns an IHTMLDocument2 value (for web documents).This interface is used to retrieve information about a document, to examine and modify the HTMLelements and text within the document, and to process related events.To get the "href" attribute (link) of an "a" tag inside a document, while the mouse hovers over a document, you need to react on the "onmousemove" event of the IHTMLDocument2.Here are the steps to sink events for the currently loaded document:1. Sink the WebBrowser control's events in the DocumentComplete event raised by theTWebBrowser. This event is fired when the document is fully loaded into the Web Browser.2. Inside DocumentComplete, retrieve the WebBrowser's document object and sink theHtmlDocumentEvents interface.3. Handle the event you are interested in.4. Clear the sink in the in BeforeNavigate2 - that is when the new document is loaded in the WebBrowser.HTML Document OnMouseMoveSince we are interested in the HREF attribute of an A element - in order to show the URL of a link the mouse is over, we will sink the "onmousemove" event.The procedure to get the tag (and its attributes) "below" the mouse can be defined as:varhtmlDoc : IHTMLDocument2;...procedure TForm1.Document_OnMouseOver;varelement : IHTMLElement;beginif htmlDoc = nil then Exit;element := htmlDoc.parentWindow.event.srcElement;elementInfo.Clear;if LowerCase(element.tagName) = 'a' thenbeginShowMessage('Link, HREF : ' + element.getAttribute('href',0)]) ;endelse if LowerCase(element.tagName) = 'img' thenbeginShowMessage('IMAGE, SRC : ' + element.getAttribute('src',0)]) ;endelsebeginelementInfo.Lines.Add(Format('TAG : %s',[element.tagName])) ;end;end; (*Document_OnMouseOver*)As explained above, we attach to the onmousemove event of a document in the OnDocumentComplete event of a TWebBrowser:procedure TForm1.WebBrowser1DocumentComplete( ASender: TObject;const pDisp: IDispatch;var URL: OleVariant) ;beginif Assigned(WebBrowser1.Document) thenbeginhtmlDoc := WebBrowser1.Document as IHTMLDocument2;htmlDoc.onmouseover := (TEventObject.Create(Document_OnMouseOver) as IDispatch) ;end;end; (*WebBrowser1DocumentComplete*)And this is where the problems arise! As you might guess the "onmousemove" event is *not* a usual event - as are those we are used to work with in Delphi.The "onmousemove" expects a pointer to a variable of type VARIANT of type VT_DISPATCH that receives the IDispatch interface of an object with a default method that is invoked when the event occurs.In order to attach a Delphi procedure to "onmousemove" you need to create a wrapper that implements IDispatch and raises your event in its Invoke method.Here's the TEventObject interface:TEventObject = class(TInterfacedObject, IDispatch)privateFOnEvent: TObjectProcedure;protectedfunction GetTypeInfoCount(out Count: Integer): HResult; stdcall;function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall; publicconstructor Create(const OnEvent: TObjectProcedure) ;property OnEvent: TObjectProcedure read FOnEvent write FOnEvent;end;Here's the full source code along with a sample project you can download.How to disable Context menu in a TWebBrowserHere's the code to disable the context menu (the one a user gets when it right-clicks inside a TWebBrowser) for TWebBrowser in a Delphi application:~~~~~~~~~~~~~~~~~~~~~~~~~varMouseHook: THandle;procedure TForm1.FormCreate(Sender: TObject) ;beginMouseHook := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId()) ;end;procedure TForm1.FormDestroy(Sender: TObject) ;beginif MouseHook <> 0 thenUnHookWindowsHookEx(MouseHook) ;end;function MouseProc(nCode: Integer; wParam, lParam: Longint): LongInt; stdcall;varclassbuf: array[0..255] of Char;constie = 'Internet Explorer_Server';begincase nCode < 0 ofTrue:Result := CallNextHookEx(MouseHook, nCode, wParam, lParam)False:case wParam ofWM_RBUTTONDOWN, WM_RBUTTONUP:beginGetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND, classbuf, SizeOf(classbuf)) ;if lstrcmp(@classbuf[0], @ie[1]) = 0 thenResult := HC_SKIPelseResult := CallNextHookEx(MouseHook, nCode, wParam, lParam) ;endelsebeginResult := CallNextHookEx(MouseHook, nCode, wParam, lParam) ;end;end; //case wParamend; //case nCodeend; (*MouseProc*)~~~~~~~~~~~~~~~~~~~~~~~~~。

delphi中TWebBrowser的常见属性、方法和使用技巧

delphi中TWebBrowser的常见属性、方法和使用技巧

delphi中TWebBrowser的常见属性、方法和使用技巧一、常见属性、方法GoBack:方法,后退到上一个页面。

GoForward:方法,前进到下一个页面。

GoHome:方法,调用默认的主页页面,该页面在IE的选项中设定。

GoSearch:方法,调用默认的搜索页面,该页面在IE的选项中设定。

Refresh:方法,刷新当前页面。

Stop:方法,停止调用或打开当前页面。

LocationName:属性(WideString),当前位置的名称。

LocationURL:属性(WideString),当前位置的URL。

Busy: 属性(Boolean),是否正忙。

Visible: 属性(Boolean),浏览器窗口是否可见。

(以下属性为在TWebBrowser新增,TWebBrowser_V1中没有,其作用有待探索)StatusBar: 属性(Boolean),是否显示状态栏。

StatusText: 属性(WideString),状态栏内容。

ToolBar: 属性(SYSINT),工具栏中的内容。

MenuBar: 属性(Boolean),是否显示菜单条。

FullScreen: 属性(Boolean),是否全屏显示。

Offline: 属性(Boolean),是否脱机浏览。

AddressBar: 属性(Boolean),是否显示地址栏。

Navigate(const URL: WideString;var Flags, TargetFrameName, PostData, Headers: OleVariant):方法,调用指定页面具体参数如下:URL:指定页面的URL。

Flags:Word类型,作用还不清楚,可设为0。

TargetFrameName:WideString打开页面所在的Frame,为空字符串时在当前的Frame中打开;TargetFrameName指定的Frame存在时在Frame中打开;TargetFrameName 指定的Frame不存在时则新建一个窗口打开,此时就相当于调用外部的IE浏览器了。

delphiWebBrowser的使用方法详解(四)

delphiWebBrowser的使用方法详解(四)

delphi WebBrowser 的使用方法详解(四)delphi WebBrowser 的使用方法详解(四) -webbrowser 轻松实现自动填表分类:Delphi Webbrowser TembeddedWB 2013-11-01 17:02 220 人阅读评论(0) 收藏举报目录(?)[+]webbrowser 轻松实现自动填表步骤如下:第一步:获取网页调用Webbrowser 的Navigate 系列函数。

等待网页装载完成,得到document 对象。

在调用webBrowser.Document 之前,请确保Webbrowser 网页装载完成,可以通过Webbrowser 的DocumentCompleted 事件进行监视。

小技巧先指定一个变量步骤如下:第一步:获取网页调用Webbrowser 的Navigate 系列函数。

等待网页装载完成,得到document 对象。

在调用webBrowser.Document 之前,请确保Webbrowser 网页装载完成,可以通过Webbrowser 的DocumentCompleted 事件进行监视。

小技巧先指定一个变量:IsCompleted在调用Webbrowser 的Navigate ,Refresh 系列函数之前,将IsCompleted 设为false。

在DocumentCompleted 事件中,如果ReadyState 为plete(值为4),则设IsCompleted 为true.调用webBrowser.Document 之前对IsCompleted 进行判断。

如果不为true,则延时循环等待,直到IsCompleted被设为true.第二步:设置网页元素数据确保得到document 对象之后,通过GetElementById 获取网页元素,如:HtmlElement user = webBrowser.Document.GetElementById("user"); HtmlElement password =webBrowser.Document.GetElementById("password"); 设置网页元素值:user.InnerText = "myname"; password.InnerText = "123456";小技巧作用SetAttribute 设置下拉框,复选框,多选框数据下拉框:secret.SetAttribute("value", "question1"); 复选框rememberme.SetAttribute("Checked", "True"); 多选框cookietime.SetAttribute("checked", "checked");当然,在SetAttribute 之前,也可以用GetAttribute 取相关的属性先进行判断,再根椐需要进行设置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Navigate方法语法中各参数的说明如表26.14所示。
示例:
Navigate方法是TWebBrowser组件中最重要的方法之一,使用该方法能够将当前TWebBrowser组件导航到任何存在的链接上,代码如下:
if WebBrowser1.Busy then
WebBrowser1.Stop;
语法:
procedure Navigate(const URL: WideString); overload;
procedure Navigate(const URL: WideString; var Flags: OleVariant); overload;
procedure Navigate(const URL: WideString; var Flags: OleVariant;var TargetFrameName:
语法:
property FullName: WideString;
示例:
显示Web浏览器组件所在的可执行文件的名称,并且包含路径,代码如下:
ShowMessage('Web组件所在的可执行文件为:'+WebBrowser1.FullName);
(6)LocationName属性
获得当前在Web浏览器组件中显示的资源名。
语法:
property ControlInterface: IWebBrowser2;
示例:
显示WebBrowser1组件的名称,代码如下:
Showmessage();
(5)FullName属性
指定主机上Web浏览器组件的可执行文件的完整的合法路径名。
pcx:坐标点X。
pcy:坐标点Y。
(2)ExecWB方法
允许用户用IOleCommandTarget接口传递一个命令到当前Web浏览器组件。Microsoft定义了一些常量来表示这些命令,但是Web浏览器不全部支持这些命令,可用QueryStatusWB方法使用这些命令。
语法:
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT); overload;
语法:
property LocationName: WideString;
示例:
显示网页标题的名称,代码如下:
ShowMessage('网页标题名:'+WebBrowser1.LocationName);
(7)LocationURL属性
确定当前显示文档、文件夹的URL或路径。
语法:
property LocationURL: WideString;
OleVariant); overload;
procedure Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName:
OleVariant; var PostData: OleVariant); overload;
try
WebBrowser1.GoForward();
except
exit;
end;
(5)GoHome方法
返回已注册主页或开始页,在注册表中指定主页的注册项为:HKEY_CURRENT_USER\Sof- tware\Microsoft\IE\Main下的SStartpage名称栏。可用TRegistry、TRegistryIniFile对象或IE浏览器“工具”中的Internet选项改变注册主页。
WebBrowser1.Navigate(URL); //URL为网址
(8)Navigate2方法
定位或下载指定的资源,发送HTTP消息到指定的URL并显示指定文件的内容,或导航到不能表达为URL的资源。
语法:
procedure Navigate2(var URL: OleVariant); overload;
语法:
property AddressBar: WordBool;
(2)Busy属性
确定Web浏览器组件是否正在导航到一个新的URL地址或正在下载文档。
语ቤተ መጻሕፍቲ ባይዱ:
property Busy: WordBool;
示例:
如果该属性值为True,则在开始一个新的操作前,可用Stop方法中止当前操作,然后再导航到其他的页面,代码如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if WebBrowser1.Busy then
WebBrowser1.Stop;
WebBrowser1.Navigate('');
begin
WebBrowser1.Stop;
end
else
ShowMessage('Web浏览器没有一个具有Automation接口的容器');
(4)ControlInterface属性
访问WebBrowser组件接口,这个接口允许一个Automation控制器访问Web浏览器的属性、方法和事件。
procedure Navigate2(var URL: OleVariant; var Flags: OleVariant); overload;
procedure Navigate2(var URL: OleVariant; var Flags: OleVariant; var TargetFrameName:
语法:
property RegisterAsDropTarget: WordBool;
示例:
该属性为True时,允许用户拖放HTML文档到当前Web浏览器;否则拖放操作无效,代码如下:
procedure TForm1.ToolButton4Click(Sender: TObject);
begin
指定Web浏览器是否从本地缓存中获取文档。该属性为True时,表示Web浏览器以脱机方式工作,否则为在线方式。
语法:
property Offline: WordBool;
注意:可以使用IE浏览器保存HTML网页到本地缓存,浏览器可以脱机方式工作。
(10)Path属性
指定主机上Web浏览器组件可执行文件的路径名,不包括文件名。
示例:
显示地址的完整路径,代码如下:
ShowMessage('Web浏览器组件连接的URL为:'+WebBrowser1.LocationURL);
(8)Name属性
指定计算机上的TWebBrowser的名称。
语法:
property Name: WideString;
(9)Offline属性
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT; var pvaIn: OleVariant);
overload;
procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT; var pvaIn: OleVariant;
procedure Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName:
OleVariant; var PostData: OleVariant; var Headers: OleVariant); overload;
delphi TWebBrowser组件使用详解
该组件是一个浏览器组件,可以显示一个指定地址的网页、设置网页打开时的主页以及对网页进行相关的操作,同时也可以对HTML文件进行剪切、复制、粘贴、删除等操作。该 组件在Internet组件页中。
1.属性
(1)AddressBar属性
设置是否显示地址栏,在TWebBrowser中没有用。
if not WebBrowser1.RegisterAsDropTarget then
WebBrowser1.RegisterAsDropTarget:=true;
end;
(14)Silent属性
指定TWebBrowser是否显示对话框。该属性为True时,该对话框不再显示脚本错误。
语法:
property Path: WideString;
示例:
Str := WebBrowser1.Path;
(11)ReadyState属性
获得指定Web浏览器组件的状态信息,使用这个信息可避免Web浏览器执行未准备的操作。
语法:
property ReadyState: TOleEnum;
ShowMessage('Automation对象的类型为:'+WebBrowser1.Type_);
2.方法
(1)ClientToWindow方法
IE使用该方法转换客户坐标与窗口坐标。一般不要使用该方法。
语法:
procedure ClientToWindow(var pcx: SYSINT; var pcy: SYSINT);
语法:
property Silent: WordBool;
(15)Type_属性
指定包含的文档对象的类型名称,读取该属性以确定Automation对象的类型,该对象的接口通过Document属性表示。
语法:
property Type_: WideString;
相关文档
最新文档