VB操作IE浏览器

相信现在绝大多数计算机上使用的是IE浏览器。如何通过编程控制IE的操作呢,本文将一步步介绍如何通过VB   
调用IE的对象库来对IE进行控制。   
本文使用的编程工具是VB6英文企业版,浏览器是IE5,以下的代码只能在IE4及以上版本下运行。另外为了能深   
入了解程序代码,最好能安装MSDN。文中的所有对象、函数、事件在其中都可以查到。   
    
一、如何获得Windows中所有打开的浏览器窗口   
首先打开VB,建立一个新工程,点击菜单   Projects   |   References   项,在Available   References   列表中选择   
Microsoft   Internet   Controls项将Internet对象引用介入到工程中。添加一个ListBox到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中再添加一个TextBox控件,将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   
运行程序,点击ListBox中的一个列表,所对应的浏览器窗口中的文本内容就会显示在TextBox中。   
在上面的程序中,首先根据ListBox中选择的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   
运行程序,在ListBox中选择一个URL后点击Command1,然后转到与所选项向对应的浏览窗口输入网站地址进行浏览,可以   
看到所浏览过的站点地址在TextBox中一一列出。   
上面的程序实现起来也很简单。首先定义一个可响应事件的Webbrowser对象,然后将它与在ListBox中选择的Webbrowser对   
象联系起来,当浏览器发生变化时,eventIE对象就能响应相应的事件。   
根据IE版本的不同,Webbrowser对象也不同,作者的浏览器是IE5.0,在上面将eventIE定义为WebBrowser_V1运行通过,如   
果你的浏览器版本为4.0的话,可能在执行   Set   eventIE   =   objIE   时,可能产生   Type   mistake   错误,这时你可以尝试将   
eventIE定义为:Dim   WithEvents   eventIE   As   WebBrowser

时间: 2024-10-20 12:08:24

VB操作IE浏览器的相关文章

atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结

atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结 1. 常见标准 1 1.1. 录制重放 1 1.2. 一个窗体一个proxy cookie 1 1.3. exec js 1 1.4. js 调用java 1 1.5. 修改dom属性 2 1.6. 关键字驱动 2 1.7. 加载js类库 2 1.8. 一个窗口一个代理 2 1.9. 独立窗口cookie 2 1.10. 无图模式支持 2 1.11. 支持自定义路径 2 2. 框架选型selenium2(web

js操作IE浏览器弹出浏览文件夹

如图所示: 可以返回目录路径. 操作如下: function BrowseFolder(){ try{ var Message = "请选择文件夹"; //选择框提示信息 var Shell = new ActiveXObject( "Shell.Application" ); var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑 //var Folder = Shell.Bro

VB操作EXCEL文件大全

Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection) ' '    Dim tmp1 Dim i1 As Integer, intCol As Integer, intRow As Integer Dim xlApp As New Excel.Application Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Worksheet Dim st

C#操作IE浏览器

最近的一个B/S系统中,用到了指模录入,当用户按了手指摸之后,要在IE浏览器的一个文本框上显示用户的姓名.由于要监控指模机的输入,因此客户端需要装一个.net控制台程序,通过此控制台程序监控指模机.这个没办法.这个.net控制台程序装在公司前台的电脑上就OK了.然后通过局域网与指模机相联,当用户按手指摸并且验证通过之后,从指模机读取用户的姓名,然后检测当前浏览器是否有打开系统上的某个页面.如果有,则将姓名输入到IE浏览器的响应文本框. 这里用到的最麻烦的一个东东就是C#操作IE浏览器.之前太孤陋

VB操作EXCEL文件

用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application 1)显示当前窗口:ExcelID.Visible:=True2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel'3)添加新工作簿:ExcelID.WorkBooks.Add4)打开已存在的工作簿:ExcelID.WorkBo

python+selenium操作chrome浏览器抓取网页解决方案

以下操作均是在ubuntu系统下运行 from selenium import webdriver from scrapy.selector import Selector #操作chrome浏览器抓取淘宝 driver = webdriver.Chrome() driver.get('淘宝链接') print(driver.page_source) t_selector = Selector(text=driver.page_source) tm_price = t_selector.xpat

C#通过COM组件操作IE浏览器(四):实用代码总结

//执行js方法 IHTMLWindow2 win = oDocument2.parentWindow; win.execScript("functiona();", "JavaScript"); //加入自定义js IHTMLDOMNode domNode = (IHTMLDOMNode)oLeftDocument2?.body; IHTMLElement script = oDocument2.createElement("script");

09.11 jquery04 效果 基本 滑动滑出 淡入淡出 自定义动画 动画操作 工具 浏览器 对象和属性操作核心

# 效果 ### 基本 (width/height/opacity) * show() * hide() * toggle() ### 滑动滑出 (height) * slideUp()       隐藏 * slideDown()  显示 * slideToggle() ### 淡入淡出 * fadeOut()    隐藏 * fadeIn()      显示 * fadeToggle() * fadeTo() 不占用位置 消失之后后面的自动向上移动 ### 自定义动画 * animate(p

C#通过COM组件操作IE浏览器(一):打开浏览器跳转到指定网站

简介Internet Explorer对象模型 1.属性 属性 类型 描述 Application Object 返回对Internet Explorer对象的引用. Busy Boolean 返回一个布尔值,指示Internet Explorer是否正在忙于下载数据或执行某些其他活动.True表示忙碌 假指示不忙. Container Object 返回对Internet Explorer的容器/父级的引用(如果有的话). Document Object 返回对活动文档的引用(如果有的话).