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