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
?
轉載于:https://www.cnblogs.com/huhewei/p/6352139.html
總結
- 上一篇: 山西大学生计算机设计大赛,2017中国大
- 下一篇: 14WPF---关键帧动画