一、 編程準(zhǔn)備
VB通過OLE自動(dòng)化技術(shù)創(chuàng)建和控制Internet Explorer對(duì)象的實(shí)例,因此,在新建一個(gè)工程后需要加入Microsoft Internet 控制的參考,方法是打開Visual Basic 的Project下拉菜單中的Reference…選項(xiàng),單擊Browse…按鈕,在Windows的system目錄下找到SHDOCVW.DLL并選中它,它是Internet Explorer的類庫。
二、 實(shí)現(xiàn)方法
在窗體form1中添加表1所示的控件。
控件類型 | 控件名稱 | 控件內(nèi)容 |
Label | Lable1 | 地址: |
Text | Text1 | (空) |
Command | cmdView | 瀏覽 |
Command | cmdForward | 向前 |
Command | cmdBackward | 向后 |
Command | cmdCloseView | 關(guān)閉瀏覽窗口 |
Command | cmdExit | 退出 |
對(duì)上述窗體添加如下代碼即可實(shí)現(xiàn)對(duì)Internet Explorer的調(diào)用與控制,
Dim WithEvents ieView As InternetExplorer
'在通用模塊中定義Internet Explorer對(duì)象
Private Sub Form_Load()
cmdForward.Visible = False
cmdBackward.Visible = False
cmdCloseView.Visible = False
'窗體調(diào)入時(shí)隱藏Internet Explorer控制按鈕
End Sub
Private Sub cmdView_Click()
Dim txtAddress As String
On Error Resume Next '設(shè)置錯(cuò)誤陷阱
Set ieView = GetObject("", "InternetExplorer.Application")
ieView.Visible = True
'創(chuàng)建Internet Explorer對(duì)象的一個(gè)實(shí)例,并設(shè)為可見
txtAddress = Trim(Text1.Text)
ieView.Navigate txtAddress, navNoReadFromCache
'按text1控件的內(nèi)容進(jìn)行瀏覽
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 '設(shè)置錯(cuò)誤陷阱
ieView.GoForward
End Sub
Private Sub cmdBackward_Click()
On Error Resume Next '設(shè)置錯(cuò)誤陷阱
ieView.GoBack
End Sub
Private Sub cmdCloseView_Click()
On Error Resume Next '設(shè)置錯(cuò)誤陷阱
ieView.Quit
End Sub
Private Sub ieView_OnQuit()
Set ieView = Nothing
'消除ieView對(duì)象
cmdForward.Visible = False
cmdBackward.Visible = False
cmdCloseView.Visible = False
cmdView.Enabled = True
cmdExit.Enabled = True
'恢復(fù)初始按鈕狀態(tài)
End Sub
Private Sub cmdExit_Click()
End
End Sub
程序啟動(dòng)后"向前"、"向后"、"關(guān)閉瀏覽窗口"等命令鈕不可見,在文本框內(nèi)輸入相應(yīng)的URL地址,單擊"瀏覽"按鈕即可調(diào)入Internet Explorer進(jìn)行瀏覽,此時(shí),"向前"、"向后"、"關(guān)閉瀏覽窗口"命令鈕轉(zhuǎn)為可見,從而實(shí)現(xiàn)對(duì)瀏覽器的控制,單擊"關(guān)閉瀏覽窗口"命令按鈕可關(guān)閉當(dāng)前打開的Internet Explorer窗口,此時(shí)窗口又還原為初始模樣,可再次輸入新的地址進(jìn)行瀏覽。
三、 注意問題
1. 必須在最上層通用模塊中定義Internet Explorer對(duì)象,并且將其定義為WithEvents類型以便響應(yīng)由Active X組件觸發(fā)的事件;
2. 瀏覽時(shí)需用下述語句創(chuàng)建Internet Explorer對(duì)象實(shí)例,并設(shè)為可見:
Set ieView = GetObject("", "InternetExplorer.Application")
ieView.Visible = True
退出時(shí)須消除該對(duì)象以釋放內(nèi)存,即
Set ieView = Nothing
否則會(huì)因大量占用系統(tǒng)資源導(dǎo)致系統(tǒng)不穩(wěn)定。
3. 調(diào)用和控制Internet Explorer過程中會(huì)產(chǎn)生各種錯(cuò)誤,如在瀏覽器歷史記錄為空時(shí),執(zhí)行"向前"、"向后"操作就會(huì)產(chǎn)生OlE自動(dòng)化錯(cuò)誤,必須在"瀏覽"、"向前"、"向后"、"關(guān)閉瀏覽窗口"等命令按鈕相應(yīng)程序模塊開始處加入錯(cuò)誤捕獲語句:
On Error Resume Next
以檢測和處理類似錯(cuò)誤,上述程序在Windows98、VB 5.0環(huán)境下調(diào)試通過。
相關(guān)推薦:2010年上半年全國計(jì)算機(jī)等考報(bào)名時(shí)間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |