利用VB實現對IE的呼叫與控制 (轉)

worldblog發表於2007-12-09
利用VB實現對IE的呼叫與控制 (轉)[@more@]

利用VB實現對IE的與控制

隨著應用的不斷擴充套件,採用HTML語言編寫的文件越來越多,如何在VB中實現對HTML文件的瀏覽是一個需要解決的問題。本文以一個例項說明了在VB中呼叫和控制Inte Explorer的方法。

  一、 準備

  VB透過OLE自動化技術建立和控制Internet Explorer的例項,因此,在新建一個工程後需要加入 Internet 控制的參考,方法是開啟 的Project下拉選單中的Reference…選項,單擊Browse…按鈕,在的system目錄下找到SHDOCVW.DLL並選中它,它是Internet Explorer的類庫。

  二、 實現方法

  在窗體form1中新增表1所示的。 控制元件型別控制元件名稱控制元件內容 Label Lable1 地址: Text Text1 (空) Command cmdView 瀏覽 Command cmdForward 向前 Command cmackward 向後 Command cmdCloseView 關閉瀏覽視窗 Command cmdExit 退出

  對上述窗體新增如下程式碼即可實現對Internet Explorer的呼叫與控制,

  Dim WithEvents ieView As InternetExplorer

  '在通用模組中定義Internet Explorer物件

  Private Sub Form_Load()

  cmdForward.Visible = False

  cmdBackward.Visible = False

  cmdCloseView.Visible = False

  '窗體調入時隱藏Internet Explorer控制按鈕

  End Sub

  Private Sub cmdView_Click()

  Dim txtAddress As String

  On Error Resume Next '設定錯誤陷阱

  Set ieView = Get("", "InternetExplorer.Application")

  ieView.Visible = True

  '建立Internet Explorer物件的一個例項,並設為可見

  txtAddress = Trim(Text1.Text)

  ieView.Navigate txtAddress, navNoReadFromCache

  '按text1控制元件的內容進行瀏覽

  cmdView.Enabled = False

  cmdExit.Enabled = False

  cmdForward.Visible = True

  cmdBackward.Visible = True

  cmdCloseView.Visible = True

  '使瀏覽、退出命令鈕無效,使IE控制命令鈕可見

  End Sub

  Private Sub cmdForward_Click()

  On Error Resume Next '設定錯誤陷阱

  ieView.GoForward

  End Sub

  Private Sub cmdBackward_Click()

  On Error Resume Next '設定錯誤陷阱

  ieView.GoBack

  End Sub

  Private Sub cmdCloseView_Click()

  On Error Resume Next '設定錯誤陷阱

  ieView.Quit

  End Sub

  Private Sub ieView_OnQuit()

  Set ieView = Nothing

  '消除ieView物件

  cmdForward.Visible = False

  cmdBackward.Visible = False

  cmdCloseView.Visible = False

  cmdView.Enabled = True

  cmdExit.Enabled = True

  '恢復初始按鈕狀態

  End Sub

  Private Sub cmdExit_Click()

  End

  End Sub

  程式啟動後"向前"、"向後"、"關閉瀏覽視窗"等命令鈕不可見,在文字框內輸入相應的URL地址,單擊"瀏覽"按鈕即可調入Internet Explorer進行瀏覽,此時,"向前"、"向後"、"關閉瀏覽視窗"命令鈕轉為可見,從而實現對的控制,單擊"關閉瀏覽視窗"命令按鈕可關閉當前開啟的Internet Explorer視窗,此時視窗又還原為初始模樣,可再次輸入新的地址進行瀏覽。

  三、 注意問題

  1. 必須在最上層通用模組中定義Internet Explorer物件,並且將其定義為WithEvents型別以便響應由Active X觸發的事件;

  2. 瀏覽時需用下述語句建立Internet Explorer物件例項,並設為可見:

  Set ieView = GetObject("", "InternetExplorer.Application")

  ieView.Visible = True

  退出時須消除該物件以釋放,即

  Set ieView = Nothing

  否則會因大量佔用資源導致系統不穩定。

  3. 呼叫和控制Internet Explorer過程中會產生各種錯誤,如在瀏覽器歷史記錄為空時,"向前"、"向後"操作就會產生OlE自動化錯誤,必須在"瀏覽"、"向前"、"向後"、"關閉瀏覽視窗"等命令按鈕相應程式模組開始處加入錯誤捕獲語句:

  On Error Resume Next

  以檢測和處理類似錯誤,上述程式在Windows98、5.0環境下透過。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990079/,如需轉載,請註明出處,否則將追究法律責任。

相關文章