VB操做IE瀏覽器

相信如今絕大多數計算機上使用的是IE瀏覽器。如何經過編程控制IE的操做呢,本文將一步步介紹如何經過VB   
調用IE的對象庫來對IE進行控制。   
本文使用的編程工具是VB6英文企業版,瀏覽器是IE5,如下的代碼只能在IE4及以上版本下運行。另外爲了能深   
入瞭解程序代碼,最好能安裝MSDN。文中的全部對象、函數、事件在其中均可以查到。   
    
1、如何得到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均可以查到。   
    
2、如何獲得每個瀏覽窗口的內容   
在上面程序的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屬性鏈接。   
    
    
3、響應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編程

相關文章
相關標籤/搜索