VB做IE插件1 BHO

用VB做IE插件(BHO)

 

BHO(瀏覽器輔助對象)用於IE的加載項中,可以對IE的事件進行攔截編程(可以是IE上的工具條,或者按鈕或者不可見插件).BHO的定義位於註冊表"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects/" 下,當IE啓動時就加載了該項下所有子項.通過IObjectWithSite接口同前面的工具條擴展一樣可以用來獲得瀏覽器的接口,而IDispatch接口,則被用來監聽瀏覽器的事件。

 

首先需要獲得IObjectWithSite接口的定義,你下載個tl_ole.zip,包含了接口定義,下載下來以後,把它應用

然後創建一個ActiveX DLL工程,名稱爲MyBho 在工程中引用這個tlb文件,

 

並且引用Microsoft HTML Object Library(MSHTML.DLL)和mcrosoft Internet Controls(Shdocvw.dll)。


Implements IObjectWithSiteTLB.IObjectWithSite


Dim WithEvents m_ie As InternetExplorer   '瀏覽器對象
Attribute m_ie.VB_VarHelpID = -1
Dim m_Site As IUnknownVB                       'COM 接口

 

Private Sub IObjectWithSite_GetSite(ByVal priid As IObjectWithSiteTLB.GUIDPtr, ppvObj As IObjectWithSiteTLB.VOIDPtr)
m_Site.QueryInterface priid, ppvObj
End Sub

 

Private Sub IObjectWithSite_SetSite(ByVal pSite As IObjectWithSiteTLB.IUnknownVB)
  Set m_Site = pSite
  Set m_ie = pSite      '獲取到對象以後可以做自己想做的一切
End Sub

 

將這個工程編譯爲:MyBho.dll。

編譯工程後,可以通過調用regsvr32 MyBho.dll註冊這個組件,這個地方如果這個組件在系統目錄下的話就不用帶路徑,否則的話要帶路徑,如e://MyBho.dll

組件註冊了以後,就會在註冊表HKEY_CLASSES_ROOT/CLSID中註冊組件的GUID。

在註冊表中用prjBHO.dll做關鍵字就可以查找到MyBho.dll註冊的GUID,然後將這個GUID拷貝下來,然後在註冊表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects下創建一個新項,項的名稱就是這個GUID

 

Private Sub m_ie_DocumentComplete(ByVal pDisp As Object, URL As Variant)
 On Error Resume Next
 MsgBox   CSTR(URL)

End Sub

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章