日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

VB操作IE浏览器完全控制

發布時間:2023/12/18 HTML 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VB操作IE浏览器完全控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文將一步步介紹如何通過VB調用IE的對象庫來對IE進行控制。
本文使用的編程工具是VB6英文企業版,瀏覽器是IE5,以下的代碼只能在IE4及以上版本下運行。另外為了能深入了解程序代碼,最好能安裝MSDN。文中的所有對象、函數、事件在其中都可以查到。[@more@]相信現在絕大多數計算機上使用的是IE瀏覽器。如何通過編程控制IE的操作呢,

一、如何獲得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

--------------------------------------------------------------------------------

-- 作者:hongjuan
-- 發布時間:2004-2-12 21:04:00

--
自己的IE——用VB制作瀏覽器


  程序的主角是一個ActiveX控件:WebBrowser。當然,缺省狀態下VB的工具箱中并沒

有它,我們得手工加入,方法是:右擊工具箱,在出現的快捷菜單中選擇“部件...”,

確保在彈出的對話框中選中“控件”標簽,找到Microsoft Internet Controls,在它前

面的小框中打鉤,然后確定。此時你會發現工具箱中多了兩個小圖標,其中,地球圖標代

表的控件正是我們需要的WebBrowser。

  由于許多人對WebBrowser控件不是很熟悉,VB的幫助中也沒有有關它的內容(反正

我沒有找到),因此有必要介紹一下它的屬性、方法和事件,限于篇幅,我們只涉及程

序中用到的:

  屬性:LocationURL 返回控件顯示WEB頁面的URL。

  方法:Navigate 轉移到指定的URL或打開指定HTML文件。

  事件:1.DownloadBegin 下載操作開時觸發。

  2.DownloadComplete 下載操作完成、終止或失敗時觸發。

  3.ProgressChange WebBrowser控件跟蹤下載操作的過程,并定期觸發此事件。

其語法為:Sub WebBrowser_ProgressChange (ByVal Progress As Long, ByVal

ProgressMax As Long)。Progress變元是當前已下載的數據總量,ProgressMax變元

是將要下載的數據總量。

  4.TitleChange 當前文檔標題改變時觸發

  除了WebBrowser控件外,程序還需要一個Label控件:Label1;一個ComboBox控件:

combo1,用來顯示URL地址;一個StatusBar控件:StatusBar1;一個ProgressBar控件:

ProgressBar1,用來顯示下載進度(StatusBar控件和ProgressBar控件是ActiveX控件

Microsoft Windows Common Controls5.0的成員,加入工具箱的方法同WebBrowser控件),

這些控件的屬性值都用缺省值。

  以下是程序清單:

  Option Explicit

  

  Private Sub Form_Load()

  Me.Caption =“My Explorer”

  Label1.Caption = “URL”

  Combo1.Text = “”

  Combo1.Top = Label1.Height

  Combo1.Left = 0

  WebBrowser1.Top = Combo1.Top + Combo1.Height

  WebBrowser1.Left = 0

  Form_Resize

  StatusBar1.Style = sbrSimple

  ProgressBar1.ZOrder

  End Sub

  

  Private Sub Form_Resize()

  On Error GoTo a

  Combo1.Width = Form1.Width - 100

  WebBrowser1.Width = Combo1.Width

  WebBrowser1.Height = Form1.Height - Combo1.Height - 1000

  ProgressBar1.Top = Me.Height - StatusBar1.Height - 330

  ProgressBar1.Left = 0.25 * StatusBar1.Width

  ProgressBar1.Width = 0.75 * Me.Width - 250

  a:

  End Sub

  

  Private Sub Combo1_Click()

  '轉到指定網址

  WebBrowser1.Navigate Combo1.Text

  End Sub

  

  Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)

  Dim i As Long

  Dim existed As Boolean

  If KeyCode = 13 Then

  If Left(Combo1.Text, 7) <> “http://”Then

  Combo1.Text = “http://”+ Combo1.Text

  End If

  WebBrowser1.Navigate Combo1.Text

  For i = 0 To Combo1.ListCount - 1

  If Combo1.List(i) = Combo1.Text Then

  existed = True

  Exit For

  Else

  existed = False

  End If

  Next

  If Not existed Then

  Combo1.AddItem (Combo1.Text)

  End If

  End If

  End Sub

  

  Private Sub WebBrowser1_DownloadBegin()

  '下載開始時狀態欄顯示“Now Linking...”

  StatusBar1.SimpleText = “Now Linking...”

  End Sub

  

  Private Sub WebBrowser1_DownloadComplete()

  '下載完成時狀態欄顯示“Link Finished”

  StatusBar1.SimpleText = “Link Finished”

  ProgressBar1.value = 0

  End Sub

  

  Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long,

ByVal ProgressMax As Long)

  '下載進行時進度條變化

  If ProgressMax = 0 Then Exit Sub

  ProgressBar1.Max = ProgressMax

  If Progress <> -1 And Progress <= ProgressMax Then

  ProgressBar1.value = Progress

  End If

  End Sub

  

  Private Sub WebBrowser1_TitleChange(ByVal Text As String)

  Combo1.Text = WebBrowser1.LocationURL

  End Sub Dim dWinFolder As New ShellWindows 'IE窗口
需要打www.sohu.com后再使用此函數
private sub Getbody()
Dim objDoc As Object
Dim objIE As Object
For Each objIE In dWinFolder
If objIE.LocationURL = "www.sohu.com" Then
Set objDoc = objIE.Document
For i = 1 To objDoc.All.Length - 1
If objDoc.All(i).tagname = "BODY" Then
Text1(0).Text = objDoc.All(i).innerText
End If

Next
end if
next
End Sub

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/82387/viewspace-902983/,如需轉載,請注明出處,否則將追究法律責任。

轉載于:http://blog.itpub.net/82387/viewspace-902983/

總結

以上是生活随笔為你收集整理的VB操作IE浏览器完全控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。