IE浏览器完全控制,相信现在绝大多数计算机上使用的是IE浏览器。如何通过编程控制IE的操作呢,本文将一步步介绍如何通过VB
调用IE的对象库来对IE进行控制。 本文使用的编程工具是VB6英文企业版,浏览器是IE5,以下的
代码只能在IE4及以上版本下运行。另外为了能深 入了解程序
代码,最好能安装MSDN。文中的所有对象、
函数、事件在其中都可以查到。 一、如何获得Windows中所有打开的浏览器窗口 首先打开VB,建立一个新工程,点击
菜单 Projects | References 项,在Available References 列表中选择 Microsoft Internet Controls项将Internet对象引用介入到工程中。
添加一个List
Box到Form1,然后在Form1中添 加如下
代码: Dim dWinFolder As New ShellWindows Private Sub Form_Load() Dim objIE As Object For Each objIE In dWinFolder If InStr(1,objIE.FullName,"IEXPLORE.EXE",vbTextCompare) <> 0 Then List1.AddItem objIE.LocationURL End If Next End Sub 打开几个浏览器窗口,然后运行程序,可以看到所有浏览窗口中的
URL地址都在List1中列了出来。 上面程序中的ShellWindows对象是描述当前所有打开的“浏览窗口”对象集合的对象,利用For...Each语句可以 获得其中所有的浏览
窗口对象。这是一个WebBrowser对象,在MSDN索引中通过“WebBrowser Object”中可以找到该 对象的详细介绍 在ShellWindows中的浏览
窗口对象不仅包含IE,还包含Explore窗口(向资源管理器或者“我的电脑”窗口就是 Explore)。只不过它们的宿主程序一个是IEXPLORE.EXE,一个是EXPLORE.EXE。所以对每一个对象首先根据其FulName
属性来判断窗口是IE浏览器,如果是,则将该窗口的
URL地址列出来。 通过WebBrowser对象可以获得和设置浏览器窗口中的很多
属性,例如窗口大小、工具栏、状态栏状态以及控制 窗口的浏览等,大家通过MSDN都可以查到。 二、如何得到每一个浏览窗口的
内容 在上面程序的Form1中再
添加一个Text
Box控件,将MultiLine
属性设置为True,然后在List1的Click事件中
添加如 下
代码: Dim objDoc As Object Dim objIE As Object For Each objIE In dWinFolder If objIE.LocationURL = List1.List(List1.ListIndex) Then Set objDoc = objIE.Document For i = 1 To objDoc.All.length - 1 If objDoc.All(i).tagname = "BODY" Then Text1.Text = objDoc.All(i).innerText End If Next Exit For End If Next 运行程序,点击List
Box中的一个列表,所对应的浏览器窗口中的文本
内容就会
显示在Text
Box中。 在上面的程序中,首先根据List
Box中选择的URL获得Webrowser对象,然后根据Document
属性获得文档对象。我们知道 一个
页面中
包括HEAD、TITLE、BODY部分,
页面中还可能
包括Applet、Script、连接、表单等,这些在文档中都是一个对象 在程序中就是循环文档对象下的所有对象,如果对象的
名称是“BODY”,说明对象代表HTML文档的正文部分,那么访问对象 的innerText
属性获得文档正文。关于Document对象更详细的信息,大家可以参考MSDN中Webbrowser object帮助中的 Document
属性连接。 三、响应IE事件 上面的部分只是介绍了如何访问Webbrowser对象的
属性,下面介绍如何监控IE事件。 在Form1中再
添加一个CommandButton。在
代码窗口的 [Gengeral]-[Declaration]
添加下面的定义: Dim WithEvents eventIE As WebBrowser_V1 这样就在Form1中新
添加了一个对象,然后在Command1的Click事件中
添加如下
代码: Dim objIE As Object For Each objIE In dWinFolder If objIE.LocationURL = List1.List(List1.ListIndex) Then Set eventIE = objIE Command1.Enabled = False Text1.Text = "" Exit For End If Next 在eventIE的NavigateComplete事件中
添加如下
代码: Text1.Text = Text1.Text + Chr(13) + Chr(10) + URL 在Form的UnLoad事件中
添加下面一句
代码: Set dWinFolder = Nothing 运行程序,在List
Box中选择一个URL后点击Command1,然后转到与所选项向对应的浏览窗口输入网站地址进行浏览,可以 看到所浏览过的
站点地址在Text
Box中一一列出。 上面的程序实现起来也很简单。首先定义一个可响应事件的Webbrowser对象,然后将它与在List
Box中选择的Webbrowser对 象联系起来,当浏览器发生变化时,eventIE对象就能响应相应的事件。 根据IE版本的不同,Webbrowser对象也不同,作者的浏览器是IE5.0,在上面将eventIE定义为WebBrowser_V1运行通过,如 果你的浏览器版本为4.0的话,可能在执行 Set eventIE = objIE 时,可能产生 Type mistake
错误,这时你可以尝试将 eventIE定义为:Dim WithEvents eventIE As WebBrowser
原文链接:https://www.f2er.com/vb/259488.html