VB关于webbrowser相关操作大全
WebBrowser 和 VB 交互

WebBrowser 和 VB 交互1. 从 VisualBasic 创建一个 StandardEXE 工程。
默认情况下创建 Form 1。
将 Internet 控件添加到您项目组件。
2. 添加从一个 WebBrowser 控件添加到 Form 1。
3. 为 Form1Load 事件添加代码如下:Private Sub Form_Load()WebBrowser1.Navigate "c:\mytest.htm"End Sub4. 为 WebBrowser1 BeforeNavigate2 事件添加代码如下:Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, _ URL As Variant, Flags As Variant, _TargetFrameName As Variant, PostData As Variant, _ Headers As Variant, Cancel As Boolean)Dim Ev As StringIf UCase$(Left$(URL, 6)) = "EVENT:" Then'this is our event, process it and cancel navigation Ev = UCase$(Mid$(URL, 7))Select Case EvCase "HELLO"MsgBox "Hello from VB App"'set a field on HTML pageWebBrowser1.Document.All("field1").Value = _"Hello from VB"Case "CLOSE"If MsgBox("Are you sure you want to exit?", _vbYesNo) = vbYes ThenEndEnd IfEnd SelectCancel = TrueEnd IfEnd Sub5. 从记事本, 键入以下文本并将其保存为 c:\mytest.htm 或其他位置 (请务必使用步骤 3 中相同位置): <HTML><BODY><INPUT type=text name=field1><p><INPUT type=button name=Hello value="Hello World"> <INPUT type=button name=Close value="Close App"> <SCRIPT LANGUAGE="VBScript">Sub Close_OnClick()location.href = "Event:Close"End SubSub Hello_OnClick()location.href = "Event:Hello"End Sub</SCRIPT></BODY></HTML>6. 从 VisualBasic 运行项目。
VB关于webbrowser相关操作大全

VB关于webbrowser相关操作大全VB关于webbrowser相关操作大全1、防止新窗口里头打开网页代码1:Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Dim frm As Form1Set frm = New Form1frm.Visible = TrueSet ppDisp = frm.WebBrowser1.objectEnd Sub代码2:有这段代码,有许多网页会出错,经常提示脚本错误,可以用silent属性为True来屏蔽,不过也有些不足!!!Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Cancel = TrueWebBrowser1.Navigate2Webbrowser1_DownloadComplete()Set M_Dom = Webbrowser1.DocumentEnd Sub2、如何获得网页的内容先给个例子:innerHTML:设置或获取位于对象起始和结束标签内的HTML测试一下:<div id="d" style="background-color:#ff9966">这是一个层</div><input type="button" value="获取innerHTML" onclick="getinnerHTML()"><input type="button" value="设置innerHTML" onclick="setinnerHTML()"><script language="javascript">function getinnerHTML(){alert(document.getElementById("d").innerHT ML)}function setinnerHTML(){document.getElementById("d").innerHTML=" <div id='d' style='background-color:#449966'>这是一个层,嘿嘿</div>"}</script>3、多框架框架页面访问'下面两句可以访问到多框架内容'.Document.ParentWindow.Frames.Length '.Document.ParentWindow.Frames(1).Documen t.all.tags("a")'等待多框架网页全部加载完毕,否则出错While .Busy Or .ReadyState <> 4 Or .Document.ParentWindow.Frames.Length = 0DoEventsWend4、获得浏览器信息Private Sub Command1_Click()WebBrowser1.Navigate""End SubPrivate Sub Command2_Click()Dim oWindowDim oNavSet oWindow = WebBrowser1.Document.parentWindowSet oNav = oWindow.navigatorDebug.Print erAgentSet oWindow = NothingSet oNav = NothingEnd Sub5、弹出Webbrowser消息窗口Dim oWindowSet oWindow = WebBrowser1.Document.parentWindow oWindow.confirm "abcd"VB调用webbrowser技巧集26、向Webbrowser中写入HTML内容的几种方法向Webbrowser中写入HTML内容的几种方法首先在Form_Load中加入WebBrowser1.Navigate "about:blank" 确保Webbrowser1可用方法1:Dim s As StringDim stream As IStreams = ""s = s + ""s = s + ""s = s + "hello world"s = s + ""s = s + "WebBrowser1.Document.Write s方法2:Dim oSet o = WebBrowser1.Document.selection.createrange Debug.Print oIf (Not o Is Nothing) Theno.pasteHTML "哈哈"Set o = NothingEnd If方法3:'插入文本框Dim oSet o = WebBrowser1.Document.selection.createrangeo.execCommand "InsertTextArea", False, "xxx"7、控制页面滚动WebBrowser1.Document.parentwindow.scrollby 0, 308、判断页面是否可以前进后退Private Sub Command1_Click()WebBrowser1.GoForwardEnd SubPrivate Sub Command2_Click()WebBrowser1.GoBackEnd SubPrivate Sub Form_Load()WebBrowser1.Navigate""End SubPrivate Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean) If (Command = CSC_NA VIGATEBACK) Then Command2.Enabled = EnableEnd IfIf (Command = CSC_NA VIGATEFORWARD) ThenCommand1.Enabled = EnableEnd IfEnd Sub9、如何获得网页中被选中部分的HTMLPrivate Sub Command1_Click()Dim objSelectionDim objTxtRangeSet objSelection = WebBrowser1.Document.selectionIf Not (objSelection Is Nothing) ThenSet objTxtRange = objSelection.createRangeIf Not (objTxtRange Is Nothing) Then Debug.Print objTxtRange.htmlTextSet objTxtRange = NothingEnd IfSet objSelection = NothingEnd IfEnd Sub10、Navigate的参数调用请问:在WebBrwoser控件里提供的Navigate 或者Navigate2方法中提供了传递数据的参数,调用方式为:WebBrowser1.Navigate2(URL,[Flags],[TargetFrameName],[PostData],[Headers])其中PostData参数就是一个提交参数字符串,例如"name=aaa&password=123",但问题是为什么这个方法并不是有效的,服务器端不能取得数据?如果这个方法是有效的话就不需要用一段html 代码模拟这种调用了。
WebBrowser控件最详细使用说明

WebBrowser控件最详细使用说明WebBrowser控件最详细使用说明方法说明GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项GoHome 相当于IE的“主页”按钮,连接用户默认的主页GoSearch 相当于IE的“搜索”按钮,连接用户默认的搜索页面Navigate 连接到指定的URLRefresh 刷新当前页面Refresh2 同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下:REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新REFRESH_CONTINUE 仅作内部使用。
在MSDN里写着DO NOT USE! 请勿使用REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器Stop 相当于IE的“停止”按钮,停止当前页面及其内容的载入属性说明Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。
如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser控件的自动化对象Parent 返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口Container 返回WebBrowser控件容器的自动化对象。
通常该值与Parent属性返回的值相同Document 为活动的文档返回自动化对象。
如果HTML当前正被显示在WebBrowser中,则Document属性提供对DHTML Object Model的访问途径TopLevelContainer 返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回trueType 返回已被WebBrowser控件加载的对象的类型。
VB操作网页代码

VB操作网页代码1、防止新窗口里头打开网页代码1:Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Dim frm As Form1Set frm = New Form1frm.Visible = TrueSet ppDisp = frm.WebBrowser1.objectEnd Sub代码2:有这段代码,有许多网页会出错,经常提示脚本错误,可以用silent属性为True来屏蔽,不过也有些不足!!!Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Cancel = TrueWebBrowser1.Navigate2WebBrowser1.Document.activeElement.href例如,将WebBrowser1放大点,将PictureBox变小点...PictureBox的appearance设置为0-flat,呵呵,OK~~2、禁止鼠标右键Private Function M_Dom_oncontextmenu() As BooleanWebbrowser1.Document.oncontextmenu = False End Function'引用Microsoft HTML OBject LibraryDim WithEvents M_Dom As MSHTML.HTMLDocumentPrivate Function M_Dom_oncontextmenu() As BooleanM_Dom_oncontextmenu = FalseEnd FunctionPrivate Sub Webbrowser1_DownloadComplete()Set M_Dom = Webbrowser1.DocumentEnd Sub3、如何获得网页的内容先给个例子:innerHTML:设置或获取位于对象起始和结束标签内的HTML测试一下:<div id="d" style="background-color:#ff9966">这是一个层</div><input type="button" value="获取innerHTML" onclick="getinnerHTML()"><input type="button" value="设置innerHTML" onclick="setinnerHTML()"><script language="javascript">function getinnerHTML(){alert(document.getElementById("d").innerHT ML)}function setinnerHTML(){document.getElementById("d").innerHTML=" <div id='d' style='background-color:#449966'>这是一个层,嘿嘿</div>"}</script>4、多框架框架页面访问'下面两句可以访问到多框架内容'.Document.ParentWindow.Frames.Length'.Document.ParentWindow.Frames(1).Documen t.all.tags("a")'等待多框架网页全部加载完毕,否则出错While .Busy Or .ReadyState <> 4 Or .Document.ParentWindow.Frames.Length =DoEventsWend5、获得浏览器信息Private Sub Command1_Click()WebBrowser1.Navigate""End SubPrivate Sub Command2_Click()Dim oWindowDim oNavSet oWindow = WebBrowser1.Document.parentWindowSet oNav = oWindow.navigatorDebug.Print erAgentSet oWindow = NothingSet oNav = NothingEnd Sub6、弹出Webbrowser消息窗口Dim oWindowSet oWindow = WebBrowser1.Document.parentWindow oWindow.confirm "abcd"VB调用webbrowser技巧集27、向Webbrowser中写入HTML内容的几种方法向Webbrowser中写入HTML内容的几种方法首先在Form_Load中加入WebBrowser1.Navigate "about:blank"确保Webbrowser1可用方法1:Dim s As StringDim stream As IStreams = ""s = s + ""s = s + ""s = s + "hello world"s = s + ""s = s + "WebBrowser1.Document.Write s 方法2:Dim oSet o = WebBrowser1.Document.selection.createrange Debug.Print oIf (Not o Is Nothing) Theno.pasteHTML "哈哈"Set o = NothingEnd If方法3:'插入文本框Dim oSet o = WebBrowser1.Document.selection.createrangeo.execCommand "InsertTextArea", False, "xxx"8、控制页面滚动WebBrowser1.Document.parentwindow.scrollby 0, 309、判断页面是否可以前进后退Private Sub Command1_Click() WebBrowser1.GoForwardEnd SubPrivate Sub Command2_Click() WebBrowser1.GoBackEnd SubPrivate Sub Form_Load()WebBrowser1.Navigate""End SubPrivate Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean) If (Command = CSC_NA VIGATEBACK) Then Command2.Enabled = EnableEnd IfIf (Command = CSC_NA VIGATEFORWARD) ThenCommand1.Enabled = EnableEnd IfEnd Sub10、如何获得网页中被选中部分的HTMLPrivate Sub Command1_Click()Dim objSelectionDim objTxtRangeSet objSelection = WebBrowser1.Document.selectionIf Not (objSelection Is Nothing) ThenSet objTxtRange = objSelection.createRangeIf Not (objTxtRange Is Nothing) Then Debug.Print objTxtRange.htmlTextSet objTxtRange = NothingEnd IfSet objSelection = NothingEnd IfEnd Sub11、Navigate的参数调用请问:在WebBrwoser控件里提供的Navigate 或者Navigate2方法中提供了传递数据的参数,调用方式为:WebBrowser1.Navigate2(URL,[Flags],[TargetFrameName],[PostData],[Headers])其中PostData参数就是一个提交参数字符串,例如"name=aaa&password=123",但问题是为什么这个方法并不是有效的,服务器端不能取得数据?如果这个方法是有效的话就不需要用一段html 代码模拟这种调用了。
VBWebbrowser控件使用方法

方法
说明
GoBack 相当于 IE的“后退”按钮,使你在当前历史列表中后退一项
GoForward 相当于 IE的“前进”按钮,使你在当前历史列表中前进一项 GoHome 相当于 IE的“主页”按钮,连接的“搜索”按钮,连接用户默认的搜索页面 Navigate 连接到指定的 URL
返回一个 Boolean 值,说明 WebBrowser 当前是否正在加 载URL,如果返回 true 就可以使用stop 方法来撤销正在执行的访问操作
WebBrowser 的事件
Priv ate Ev ents
Description
BeforeNavigate2
Private Sub Command2_Click() WebBrowser1.Document.parentwindow.scrollby 0, 30 End Sub
Private Sub Form _Load() WebBrowser1.Navigate "http://www.apple" End Sub
VB 调用 webbrowser 技巧集 4
1、如何使网页不出现滚动条:
Private Sub mnuSc roll1_Click() @#注意:必须在网页完全显示之后才可以运行 WebBrowser1.Document.body.Scroll = "no" @#不显示滚动条的办法 End Sub Private Sub mnuSc roll2_Click() @#注意:必须在网页完全显示之后才可以运行 WebBrowser1.Document.body.Scroll = "Auto" @#显示滚动条的办法 End Sub
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还具有一些高级功能和技巧,可以帮助用户更好地利用浏览器。
VB功能模块:最全的VB操作网页功能模块
VB功能模块:最全的VB操作网页功能模块Public Function HtmlStr$(URL$) '提取网页源码函数Dim XmlHttpSet XmlHttp = CreateObject("Microsoft.XMLHTTP")XmlHttp.Open "GET", URL, FalseXmlHttp.SendIf XmlHttp.ReadyState = 4 Then HtmlStr =StrConv(XmlHttp.Responsebody,vbUnicode)End Function2.函数调用:Dim strweb1 As Stringstrweb1=HtmlStr("http://www.baidu.c om")二、获取WebBrowser控件中网页源代码1.函数代码:Public Function WebDaima(WebBrowser, BuFen) '获取WebBrowser控件中网页源代码Select Case BuFenCase "Body" '只获取<body>与</body>之间的代码WebDaima = WebBrowser.Document.body.innerhtmlCase "All" '获取整个网页源代码WebDaima =WebBrowser.Document.documentelement.outerhtmlCase ElseWebDaima =WebBrowser.Document.documentelement.outerhtmlEnd SelectEnd Function2.调用Dim strweb As Stringstrweb=WebDaima(frmIndex.WebBrowser1,"All") '获取整个网页源代码strweb=WebDaima(frmIndex.WebBrowser1,"Body") '只获取body中源代码三、提取字符串或网页源代码中指定的资源(可利用这一函数做文章采集器)1.函数代码:Public Function FindStrMulti$(Strall$,FirstStr$, EndStr$, SplitStr$) '提取字符串或网页源代码中所有指定代码'参数'总文本,起始字符串,终止字符串,分隔符Dim i&, j&j = 1Doi = InStr(j, Strall, FirstStr)If i = 0 ThenExit DoEnd Ifi = i + Len(FirstStr)j = InStr(i, Strall, EndStr)If j > 0 ThenFindStrMulti = IIf(Len(FindStrMulti) > 0, FindStrMulti & SplitStr, "") & Mid(Strall,i, j - i)ElseExit DoEnd IfLoopEnd Function2.函数调用截取字符串中的内容Dim str1 As StringDim str2 As Stringstr1 = "<table><tr><td>要截取的内容</td></tr></table>"str2 = FindStrMulti(str1, "<td>", "</td>", "")MsgBox str2'此时str2的值就为要截取的内容文章列表标题链接采集实例网页代码<DIV id=content><SPAN class=navbar><STRONG><Ahref="/blog/">博客首页</A> > 文章列表</STRONG></SPAN><TABLE class=content_tablewidth="100%"><TBODY><TR><TD><H1>比目鱼博客文章列表</H1><P><UL><LI><SPAN class=list-category>[文坛张望]</SPAN> <A class=list-title href="/blog/archives/119491210.shtml"> <STRONG>谁会拿下2010年的诺贝尔文学奖?</STRONG></A> <SPAN class=list-date>(2010-10-01 22:38)</SPAN></LI> <LI><SPAN class=list-category>[视觉训练]</SPAN> <A class=list-title href="/blog/archives/119247165.shtml"> <STRONG>书法练习二幅</STRONG></A> <SPAN class=list-date>(2010-09-29 01:51)</SPAN> </LI><LI><SPAN class=list-category>[文坛张望]</SPAN> <A class=list-title href="/blog/archives/118604217.shtml"> <STRONG>骆以军对话董启章</STRONG></A> <SPAN class=list-date>(2010-09-21 17:15)</SPAN> </LI> <LI><SPAN class=list-category>[视觉训练]</SPAN> <A class=list-title href="/blog/archives/118206492.shtml"> <STRONG>夜临古画(六)</STRONG></A><SPAN class=list-date>(2010-09-17 01:46)</SPAN> </LI> <LI><SPAN class=list-category>[我也读书]</SPAN> <A class=list-title href="/blog/archives/117345094.shtml"> <STRONG>Jennifer Egan 的《A Visit From the Goon Squad》</STRONG></A> <SPAN class=list-date>(2010-09-07 02:30)</SPAN> </LI><LI><SPAN class=list-category>[我也读书]</SPAN> <A class=list-title href="/blog/archives/116446375.shtml"> <STRONG>当我们谈论电子书的时候我们在谈论电子书阅读器</STRONG></A> <SPAN class=list-date>(2010-08-27 16:51)</SPAN> </LI><LI><SPAN class=list-category>[IT互联网]</SPAN> <A class=list-title href="/blog/archives/116133972.shtml"> <STRONG>“读写人”和“比目鱼”网站的手机版</STRONG></A> <SPAN class=list-date>(2010-08-2402:04)</SPAN> </LI></UL><P></P><P align=center><P align=center><STRONG>1 <A href="/blog/list_all_2.shtml">2</A> <A href="/blog/list_all_3.shtml">3</A> <A href="/blog/list_all_4.shtml">4</A> <A href="/blog/list_all_5.shtml">5</A> <Ahref="/blog/list_all_6.shtml">6</A> <Ahref="/blog/list_all_7.shtml">7</A> <Ahref="/blog/list_all_8.shtml">8</A> <Ahref="/blog/list_all_2.shtml">>></A></STRONG></P><P></P></TD></TR></TBODY></TABLE><P> </P></DIV><!-- END CONTENT--><!-- BEGIN SITEBAR --><DIV id=sidebar><P>从以上代码中获取<ul>与</ul>之间所有文章的标题链接,实现方法如下:Dim strWeb As StringDim i As IntegerDim strListArea As StringDim strLink '定义存放列表文章链接的数组strWeb =WebDaima(Me.WebBrowser1, "Body") '获取网页body代码(具体查看WebDaima函数)strListArea = FindStrMulti(strWeb,"<H1>比目鱼博客文章列表</H1>","</UL>", "") '截列表区域代码'获取列表区域中文章链接,并存在在数组strLink中strLink = Split(FindStrMulti(strListArea,"href=" & Chr(34), Chr(34) &"><STRONG>", vbCrLf), vbCrLf)For i = 0 To UBound(strLink) '循环输出链接Text1.Text = Text1.Text & strLink(i) & vbCrLfNext i四、中文汉字转化为URL编码函数代码:'以下两个函数用于将文字转化为UTF8或GBK编码:(如在百度中搜索内容时,百度先将搜索词转化为UTF8的编码,再传送给服务器)'调用:'KeyWordUtf = UTF8EncodeURI(KeyWord) 或 KeyWordUtf= GBKEncodeURI(KeyWord)Public Function UTF8EncodeURI(szInput)Dim wch, uch, szRetDim XDim nAsc, nAsc2, nAsc3If szInput = "" ThenUTF8EncodeURI = szInputExit FunctionEnd IfFor X = 1 To Len(szInput)wch = Mid(szInput, X, 1)nAsc = AscW(wch)If nAsc < 0 Then nAsc = nAsc + 65536If (nAsc And &HFF80) = 0 ThenszRet = szRet & wchElseIf (nAsc And &HF000) = 0 Thenuch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80) szRet = szRet & uchElseuch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _Hex(nAsc And &H3F Or &H80)szRet = szRet & uchEnd IfEnd IfNextUTF8EncodeURI = szRetEnd FunctionPublic Function GBKEncodeURI(szInput)Dim i As LongDim X() As ByteDim szRet As StringszRet = ""X = StrConv(szInput, vbFromUnicode)For i = LBound(X) To UBound(X)szRet = szRet & "%" & Hex(X(i))NextGBKEncodeURI = szRetEnd Function函数调用:MsgBox UTF8EncodeURI("中文汉字")MsgBox GBKEncodeURI("中文汉字")五、获取网页中的验证码函数代码:Public Function GetImg(WebBrowser, Img, sxz)'参数'WebBrowser:等获取验证码网页所在的WebBrowser控件'Img:显示验证码的Image控件'sxz:网页中验证码相应属性的属性值Dim CtrlRange, xFor Each x In WebBrowser.Document.AllIf UCase(x.tagName) = "IMG" Then'x.src为验证码图片的属性,也可是其他属性如 x.onload等If InStr(x.src,sxz) > 0 ThenSet CtrlRange = WebBrowser.Document.body.createControlRange()CtrlRange.Add (x)CtrlRange.execCommand ("Copy")Debug.Print "Copy"Img.Picture = Clipboard.GetDataEnd IfEnd IfNextEnd Function函数调用:'如获取网页中的验证码图片代码如下:'<IMG id=valiCode style="CURSOR: pointer" alt=验证码src="/VerifyCode_Login.aspx" border=0>'获取验证码函数调用如下:Call GetImg(Form1.WebBrowser1, Form1.Image1, "VerifyCode_Login.aspx") 六、WebBrowser控件中网页按钮的点击'<BUTTON id="WordSearchBtn"class="btn">查询</button>'此按钮的点击方法WebBrowser1.Document.getelements bytagname("BUTTON")("WordSearchBtn").Click七、WebBrowser控件中网页文本框的赋值'文本框代码:<input id="WordInput"maxlength="40" type="text" />WebBrowser1.Document.getelements bytagname("input")("WordInput").Value ="要在文本框输入的文字"'此处WordInput为文本框的ID或Name 属性值八、WebBrowser控件中网页列表/菜单表单选项的选取函数代码Public Function SelectXq(WebBrowser, SelectName, SelectValue)'参数'WebBrowser:WebBrowser控件名称'SelectName:网页中列表/菜单表单名称或ID值'SelectValue:选中值WebBrowser.doc.All.Item(SelectName ).Value = SelectValueEnd Function函数调用方法:WebBrowser中网页Select表单代码如下:<SELECTid=ctl00_ContentPlaceHolder1_DropDownList1name=ctl00$ContentPlaceHolder1$DropDownList1> <OPTION value=我就读的第一所学校的名称? selected>我就读的第一所学校的名称?</OPTION> <OPTIONvalue=我最喜欢的休闲运动是什么?>我最喜欢的休闲运动是什么?</OPTION><OPTION value=我最喜欢的运动员是谁?>我最喜欢的运动员是谁?</OPTION><OPTION value=我最喜欢的物品的名称?>我最喜欢的物品的名称?</OPTION><OPTION value=我最喜欢的歌曲?>我最喜欢的歌曲?</OPTION> <OPTION value=我最喜欢的食物?>我最喜欢的食物?</OPTION> <OPTION value=我最爱的人的名字?>我最爱的人的名字?</OPTION><OPTION value=我最爱的电影?>我最爱的电影?</OPTION> <OPTION value=我妈妈的生日?>我妈妈的生日?</OPTION></SELECT>'让列表表单选中选项值为我最爱的人的名字的选项Call SelectXq(Form1.WebBrowser1, "ctl00_ContentPlaceHolder1_DropDownList1", "我最爱的人的名字?")八、自动填写注册表单并提交网页表单代码<form method="POST" action="re sult.asp"><p>请填写下面表单注册(*项为必添项)</p><p>*姓名<input type="text" name="Name" size="20"></p><p>*男<input type="radio" value="V1" name="R1"></p><p>*女<input type="radio" value="V1" name="R2"></p><p>*昵称<input type="text" name="NickName"size="20"></p><p>*兴趣爱好<select name="aihao"><option value="计算机">计算机</option><option value="游戏">游戏</option><option value="逛街">逛街</option></select></p><p>电子邮件<input type="text" name="EMail" size="20"></p><p>*密码<input type="password" name="Password" size="20"></p><p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p></form>填写表单并提交操作代码Private Sub Form_Load()WebBrowser1.Navigate2 App.Path & "\test.htm"End SubPrivate Sub WebBrowser1_DocumentComplete(ByValpDisp As Object, URL As Variant)Dim vDoc, vTagDim i As IntegerSet vDoc = WebBrowser1.DocumentList1.ClearFor i = 0 To vDoc.All.length - 1If UCase(vDoc.All(i).tagName) = "INPUT" Or UCase(vDoc.All(i).tagName) = "SELECT" ThenSet vTag = vDoc.All(i)If vTag.Type = "text" Or vTag.Type = "password" Or vT ag.Type = "radio" Or = "aihao" ThenList1.AddItem Select Case Case "Name"vTag.Value = "IMGod"Case "R2"vTag.Checked = TrueCase "NickName"vTag.Value = "IMGod"Case "aihao"vTag.Value = "逛街"Case "Password"vTag.Value = "IMGodpass"Case "EMail"vTag.Value="******************"End SelectElseIf vTag.Type = "submit" ThenvTag.ClickEnd IfEnd IfNext iEnd Sub九、限制WebBrowser控件中网页的所有链接在同一个窗口打开Private Sub Form_Load()WebBrowser1.Navigate ("/tool")End SubPrivate SubWebBrowser1_NewWindow2(ppDisp AsObject, Cancel As Boolean)Cancel = TrueWebBrowser1.NavigateWebBrowser1.Document.activeelement.hrefEnd Sub十、控件WebBrowser控件中网页弹窗或新窗口打开的链接在另一个WebBrowser控件中打开Private SubWebBrowser1_NewWindow2(ppDisp AsObject, Cancel As Boolean)Set ppDisp = WebPageAd.ObjectEnd Sub十一、禁止WebBrowser控件中网页弹窗Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Cancel = TrueEnd Sub。
如何在VB中控制webbrowser的弹出窗口
如何在VB中控制webbrowser的弹出窗口如何在VB中控制webbrowser的弹出窗口:因为我做浏览器从来不用webbrowser或者说从来不做浏览器对它不是很熟悉,找了几篇文章,希望对你有帮助!方法一:控制webbrowser不弹出IE窗口的方法是在控件的NewWindow2事件里面添加如下代码:Set ppDisp = WebBrowserTemp.Object ' WebBrowserTemp 为自己在窗体中另外添加的Webbrowser控件如果禁止弹出窗口,不做处理,则在NewWindow2事件里添加如下代码即可:Cancel = True摘自:方法二:利用OnDownloadBegin和OnDownloadComplete以CHtmlView为例,弹出的广告窗口都是通过CHtmlView::OnNewWindow2( LPDISPATCH* ppDisp, BOOL* Can cel );打开的。
关于OnNewWindow2不想多说,只说说这第2个参数 BOOL* Cancel当Cancel = false的时候就不能打开新窗口了,如果你的CHtmlView的该参数一直为FALSE那么一切弹出窗口都不能打开,广告窗口自然就没了。
那~~~要是总FALSE岂不是正常网页也无法浏览了?别忙,接下来要做的就是在适当的时候让这个参数返回FALSE。
抛开CHtmlView我们回头来看看IE下载网页弹出广告窗口的过程:OnDownloadBegin ---->发现window.open等Js或者vbs ---->OnNewWindow2 ---->OnDownloadComplete了解了上述过程之后......什么时候让OnNewWindow2的第2个参数为FALSE你就清楚了吧!下面跟我实战。
给你的从CHtmlView派生而来的CNoPopHtmlView加一个成员变量BOOL m_bPop;在构造函数里给m_bPop初始化为:m_bPop = TRUE;重载OnDownloadBegin虚函数,在其中加入:m_bPop = FALSE;重载OnDownloadComplete虚函数,在其中加入:m_bPop = TRUE;重载OnNewWindow2虚函数,在其中加入:Cancel = m_bPop;这样CNoPopHtmlView将不在打开广告窗口,关键在于了解IE 的下载、弹出窗口的过程。
在VB中使用IE的WebBrowser控件
在VB中使用IE的WebBrowser控件在程序设计中,如何设计出美观、实用,有个性的界面是每个程序设计者在界面设计中追求的目标。
随着Windows XP的推出,各种与众不同的华丽界面越来越被程序设计者和软件使用者所认同。
利用Windows中的WebBrowser控件,可以把华丽的网页设计技术应用到界面设计中去,例如微软著名的MSN浏览器的许多界面其实就是一个Web页,Windows XP中的帮助中心、Microsoft Encarta(微软百科全书)等许多软件中的一些界面也是利用WebBrowser控件显示的Web页。
利用WebBrowser控件显示一个网页,制作一个简单的浏览器已经有很多文章介绍,实现也不复杂,但如何实现程序与Web页的交互则是将其应用到界面设计中的关键。
ActiveX控件和WebBrowser控件的使用用Visual Basic 创建一个应用程序的第一步是创建界面。
而控件则是创建界面的基本模块,是包括在窗体对象内的对象。
每种类型的控件都有自己的属性、方法和事件,属性一般控制控件的外观、大小等性质,方法则是控件的能力或者功能,事件则代表与用户的交互,例如鼠标的移动点击、键盘的输入等都会触发相应的事件。
WebBrowser控件是随IE 3.0以上版本提供的一个可编程的ActiveX控件,利用WebBrowser控件可以显示、控制、分析Web 页,除了IE,chm格式的帮助的浏览,还广泛应用在以IE为核心的许多浏览器和其他程序中。
WebBrowser控件在VB中的使用很简单。
启动VB,创建一个标准EXE工程,选择工程——部件,打开部件对话框,从中找到Microsoft Internet Controls,选中后单击应用,然后关闭对话框(下图),可以看到WebBrowser控件已经添加到工具栏。
将WebBrowser控件拖至窗体,调整到相应大小,打开代码窗口,在Form_Load过程中键入如下代码:Private Sub Form_Load()WebBrowser1.Navigate ""End Sub运行程序,可以看到搜狐的主页显示在了相应的对话框中了。
WebBrowser用法总结
WebBrowser⽤法总结简单⽤了⼀下记录⼀下:private void button1_Click(object sender, EventArgs e){MessageBox.Show(webBrowser1.Document.Body.InnerHtml);//得到浏览器html内容,还可以⽤GetElementById();}private void Form2_Load(object sender, EventArgs e){webBrowser1.Navigate("");}url:教你在C#中WebBrowser的使⽤其实⽹络上这类⽂章很多,我⼤致从头说说我⾃⼰的经验。
1、加⼊引⽤在控件栏按右键,选择“添加/移除项”,选COM组件,选中“Microsoft Web Browser”。
然后就可以往窗体上拖出⼀个该控件(下⾯把该控件⼀个对象称为webBrowser)。
控件属性中可以调整的不多,从⼀些资料中得知WebBrowser中的MenuBar、StatusBar等其实都没实现。
2、控件的函数由于是COM过来的控件,它的⼀些函数就⽐较怪,基本的Navigate函数除了第⼀个参数外,其它都是ref类型的,需要显式地写ref才能调⽤。
⼀般要使之导向到某个页⾯,先设置⼀个空对象,object objNull=null;然后webBrowser.Navigate(strPage, ref objNull, ref objNull, ref objNull, ref objNull);即可。
具体其它四个参数可参考相关⽂档。
还有⼀个常⽤的功能,就是怎么让浏览器显⽰⾃⼰的html⽂档,⼀个⽅法是⽤DOM⾥根元素的innerText:((mshtml.HTMLDocumentClass)webBrowser.Document).documentElement.innerText=sHTML;相当⽤于Javascript设置⽹页的代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB关于webbrowser相关操作大全1、防止新窗口里头打开网页代码1:Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Dim frm As Form1Set frm = New Form1frm.Visible = TrueSet ppDisp = frm.WebBrowser1.objectEnd Sub代码2:有这段代码,有许多网页会出错,经常提示脚本错误,可以用silent属性为True来屏蔽,不过也有些不足!!!Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Cancel = TrueWebBrowser1.Navigate2 WebBrowser1.Document.activeElement.hrefEnd Sub代码3:Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)On Error Resume NextDim frmWB As Form1Set frmWB = New Form1frmWB.WebBrowser1.RegisterAsBrowser = TrueSet ppDisp = frmWB.WebBrowser1.objectfrmWB.Visible = TruefrmWB.Top = Form1.TopfrmWB.Left = Form1.LeftfrmWB.Width = Form1.WidthfrmWB.Height = Form1.HeightEnd Sub功能差不多,任选一个。
2、去掉滚动条Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) WebBrowser1.Document.Body.Scroll = "no"End Sub实际上上面的效果不咋地,如果懂得HTML知识,你可以在读取网页的时候,读取HTML 源码,查找替换,再写入只需在<body> </body> 之间插入代码:<body style= "overflow-x:hidden;overflow-y:hidden "> 即可。
其中x表示水平滚动条,将其改为y的话就可以隐藏垂直滚动条。
当然也有其他方法,比如修改网页的尺寸呀?有的时候部分元素的居中改为左对齐也能有效果将WebBrower放在PictureBox控件中,用PictureBox的边框挡住WebBrower的边框。
例如,将WebBrowser1放大点,将PictureBox变小点...PictureBox的appearance设置为0-flat,呵呵,OK~~3、禁止鼠标右键Private Function M_Dom_oncontextmenu() As BooleanWebbrowser1.Document.oncontextmenu = FalseEnd Function'引用Microsoft HTML OBject LibraryDim WithEvents M_Dom As MSHTML.HTMLDocumentPrivate Function M_Dom_oncontextmenu() As BooleanM_Dom_oncontextmenu = FalseEnd FunctionPrivate Sub Webbrowser1_DownloadComplete()Set M_Dom = Webbrowser1.DocumentEnd Sub4、如何获得网页的内容先给个例子:innerHTML:设置或获取位于对象起始和结束标签内的HTML测试一下:<div id="d" style="background-color:#ff9966">这是一个层</div><input type="button" value="获取innerHTML" onclick="getinnerHTML()"><input type="button" value="设置innerHTML" onclick="setinnerHTML()"><script language="javascript">function getinnerHTML(){alert(document.getElementById("d").innerHTML)}function setinnerHTML(){document.getElementById("d").innerHTML="<div id='d' style='background-color:#449966'>这是一个层,嘿嘿</div>"}</script>5、多框架框架页面访问'下面两句可以访问到多框架内容'.Document.ParentWindow.Frames.Length'.Document.ParentWindow.Frames(1).Document.all.tags("a")'等待多框架网页全部加载完毕,否则出错While .Busy Or .ReadyState <> 4 Or .Document.ParentWindow.Frames.Length = 0 DoEventsWend6、获得浏览器信息Private Sub Command1_Click()WebBrowser1.Navigate ""End SubPrivate Sub Command2_Click()Dim oWindowDim oNavSet oWindow = WebBrowser1.Document.parentWindowSet oNav = oWindow.navigatorDebug.Print erAgentSet oWindow = NothingSet oNav = NothingEnd Sub7、弹出Webbrowser消息窗口Dim oWindowSet oWindow = WebBrowser1.Document.parentWindowoWindow.confirm "abcd"VB调用webbrowser技巧集28、向Webbrowser中写入HTML内容的几种方法向Webbrowser中写入HTML内容的几种方法首先在Form_Load中加入WebBrowser1.Navigate "about:blank"确保Webbrowser1可用方法1:Dim s As StringDim stream As IStreams = ""s = s + ""s = s + ""s = s + "hello world"s = s + ""s = s + "WebBrowser1.Document.Write s方法2:Dim oSet o = WebBrowser1.Document.selection.createrangeDebug.Print oIf (Not o Is Nothing) Theno.pasteHTML "哈哈"Set o = NothingEnd If方法3:'插入文本框Dim oSet o = WebBrowser1.Document.selection.createrangeo.execCommand "InsertTextArea", False, "xxx"9、控制页面滚动WebBrowser1.Document.parentwindow.scrollby 0, 3010、判断页面是否可以前进后退Private Sub Command1_Click()WebBrowser1.GoForwardEnd SubPrivate Sub Command2_Click()WebBrowser1.GoBackEnd SubPrivate Sub Form_Load()WebBrowser1.Navigate ""End SubPrivate Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)If (Command = CSC_NA VIGA TEBACK) ThenCommand2.Enabled = EnableEnd IfIf (Command = CSC_NA VIGA TEFORW ARD) ThenCommand1.Enabled = EnableEnd IfEnd Sub11、如何获得网页中被选中部分的HTMLPrivate Sub Command1_Click()Dim objSelectionDim objTxtRangeSet objSelection = WebBrowser1.Document.selectionIf Not (objSelection Is Nothing) ThenSet objTxtRange = objSelection.createRangeIf Not (objTxtRange Is Nothing) ThenDebug.Print objTxtRange.htmlTextSet objTxtRange = NothingEnd IfSet objSelection = NothingEnd IfEnd Sub12、Navigate的参数调用请问:在WebBrwoser控件里提供的Navigate或者Navigate2方法中提供了传递数据的参数,调用方式为:WebBrowser1.Navigate2(URL,[Flags],[TargetFrameName],[PostData],[Headers])其中PostData参数就是一个提交参数字符串,例如"name=aaa&password=123",但问题是为什么这个方法并不是有效的,服务器端不能取得数据?如果这个方法是有效的话就不需要用一段html代码模拟这种调用了。