利用VB實現對IE的調用與控制

隨着網絡應用的不斷擴展,採用HTML語言編寫的文檔越來越多,如何在VB程序中實現對HTML文檔的瀏覽是一個需要解決的問題。本文以一個實例說明了在VB中調用和控制Internet Explorer的方法。

   一、 編程準備

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

   二、 實現方法

   在窗體form1中添加表1所示的控件。 控件類型 控件名稱 控件內容
Label Lable1 地址:
Text Text1 (空)
Command cmdView 瀏覽
Command cmdForward 向前
Command cmdBackward 向後
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 = GetObject("", "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、VB 5.0環境下調試通過。
發佈了7 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章