利用VB實(shí)現(xiàn)對(duì)IE的調(diào)用與控制

時(shí)間:2022-11-17 10:43:00

導(dǎo)語(yǔ):利用VB實(shí)現(xiàn)對(duì)IE的調(diào)用與控制一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

利用VB實(shí)現(xiàn)對(duì)IE的調(diào)用與控制

隨著網(wǎng)絡(luò)應(yīng)用的不斷擴(kuò)展,采用HTML語(yǔ)言編寫(xiě)的文檔越來(lái)越多,如何在vb程序中實(shí)現(xiàn)對(duì)HTML文檔的瀏覽是一個(gè)需要解決的問(wèn)題。本文以一個(gè)實(shí)例說(shuō)明了在VB中調(diào)用和控制InternetExplorer的方法。

一、編程準(zhǔn)備

VB通過(guò)OLE自動(dòng)化技術(shù)創(chuàng)建和控制InternetExplorer對(duì)象的實(shí)例,因此,在新建一個(gè)工程后需要加入MicrosoftInternet控制的參考,方法是打開(kāi)VisualBasic的Project下拉菜單中的Reference…選項(xiàng),單擊Browse…按鈕,在Windows的system目錄下找到SHDOCVW.DLL并選中它,它是InternetExplorer的類(lèi)庫(kù)。

二、實(shí)現(xiàn)方法

在窗體form1中添加表1所示的控件??丶?lèi)型控件名稱控件內(nèi)容

LabelLable1地址:

TextText1(空)

CommandcmdView瀏覽

CommandcmdForward向前

CommandcmdBackward向后

CommandcmdCloseView關(guān)閉瀏覽窗口

CommandcmdExit退出

對(duì)上述窗體添加如下代碼即可實(shí)現(xiàn)對(duì)InternetExplorer的調(diào)用控制,

DimWithEventsieViewAsInternetExplorer

''''在通用模塊中定義InternetExplorer對(duì)象

PrivateSubForm_Load()

cmdForward.Visible=False

cmdBackward.Visible=False

cmdCloseView.Visible=False

''''窗體調(diào)入時(shí)隱藏InternetExplorer控制按鈕

EndSub

PrivateSubcmdView_Click()

DimtxtAddressAsString

OnErrorResumeNext''''設(shè)置錯(cuò)誤陷阱

SetieView=GetObject("","InternetExplorer.Application")

ieView.Visible=True

''''創(chuàng)建InternetExplorer對(duì)象的一個(gè)實(shí)例,并設(shè)為可見(jiàn)

txtAddress=Trim(Text1.Text)

ieView.NavigatetxtAddress,navNoReadFromCache

''''按text1控件的內(nèi)容進(jìn)行瀏覽

cmdView.Enabled=False

cmdExit.Enabled=False

cmdForward.Visible=True

cmdBackward.Visible=True

cmdCloseView.Visible=True

''''使瀏覽、退出命令鈕無(wú)效,使IE控制命令鈕可見(jiàn)

EndSub

PrivateSubcmdForward_Click()

OnErrorResumeNext''''設(shè)置錯(cuò)誤陷阱

ieView.GoForward

EndSub

PrivateSubcmdBackward_Click()

OnErrorResumeNext''''設(shè)置錯(cuò)誤陷阱

ieView.GoBack

EndSub

PrivateSubcmdCloseView_Click()

OnErrorResumeNext''''設(shè)置錯(cuò)誤陷阱

ieView.Quit

EndSub

PrivateSubieView_OnQuit()

SetieView=Nothing

''''消除ieView對(duì)象

cmdForward.Visible=False

cmdBackward.Visible=False

cmdCloseView.Visible=False

cmdView.Enabled=True

cmdExit.Enabled=True

''''恢復(fù)初始按鈕狀態(tài)

EndSub

PrivateSubcmdExit_Click()

End

EndSub

程序啟動(dòng)后"向前"、"向后"、"關(guān)閉瀏覽窗口"等命令鈕不可見(jiàn),在文本框內(nèi)輸入相應(yīng)的URL地址,單擊"瀏覽"按鈕即可調(diào)入InternetExplorer進(jìn)行瀏覽,此時(shí),"向前"、"向后"、"關(guān)閉瀏覽窗口"命令鈕轉(zhuǎn)為可見(jiàn),從而實(shí)現(xiàn)對(duì)瀏覽器的控制,單擊"關(guān)閉瀏覽窗口"命令按鈕可關(guān)閉當(dāng)前打開(kāi)的InternetExplorer窗口,此時(shí)窗口又還原為初始模樣,可再次輸入新的地址進(jìn)行瀏覽。

三、注意問(wèn)題

1.必須在最上層通用模塊中定義InternetExplorer對(duì)象,并且將其定義為WithEvents類(lèi)型以便響應(yīng)由ActiveX組件觸發(fā)的事件;

2.瀏覽時(shí)需用下述語(yǔ)句創(chuàng)建InternetExplorer對(duì)象實(shí)例,并設(shè)為可見(jiàn):

SetieView=GetObject("","InternetExplorer.Application")

ieView.Visible=True

退出時(shí)須消除該對(duì)象以釋放內(nèi)存,即

SetieView=Nothing

否則會(huì)因大量占用系統(tǒng)資源導(dǎo)致系統(tǒng)不穩(wěn)定。

3.調(diào)用和控制InternetExplorer過(guò)程中會(huì)產(chǎn)生各種錯(cuò)誤,如在瀏覽器歷史記錄為空時(shí),執(zhí)行"向前"、"向后"操作就會(huì)產(chǎn)生OlE自動(dòng)化錯(cuò)誤,必須在"瀏覽"、"向前"、"向后"、"關(guān)閉瀏覽窗口"等命令按鈕相應(yīng)程序模塊開(kāi)始處加入錯(cuò)誤捕獲語(yǔ)句:

OnErrorResumeNext

以檢測(cè)和處理類(lèi)似錯(cuò)誤,上述程序在Windows98、VB5.0環(huán)境下調(diào)試通過(guò)。