VB完全控制IE浏览器,操作ie对象,响应ie事件
生活随笔
收集整理的這篇文章主要介紹了
VB完全控制IE浏览器,操作ie对象,响应ie事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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
本文使用的編程工具是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
總結
以上是生活随笔為你收集整理的VB完全控制IE浏览器,操作ie对象,响应ie事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts 制作图表固定的三个步骤
- 下一篇: VB对IE浏览器完全控制