BHO基礎
BHO就是Browser Helper Object(瀏覽器輔助對象)
BHO關聯原理 (BHO關聯的是SHDOCVW,也就是說不只關聯IE,下面全部用IE來說明)
1.IE的窗口打開時,先尋找HKLM下的SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\ 里的CLSID,這些CLSID,都對應著相應的BHO插件,然后根據這個CLSID到HKCR下的CLSIDs里找到此插件的信息,包括文件位置等。
2.IE根據找到的CLSID信息創建 BHO 對象,并且查找 IObjectWithSite 接口. (這個接口非常簡單,只有SetSite和GetSite兩個方法)
3.IE把IWebBrowser2(瀏覽器插件)傳到 BHO 的 SetSite 方法,用戶在此方法中可掛載自己的事件處理方法。
4.窗口關閉時,IE把 null 傳到 BHO 的 SetSite 方法,此方法用來去掉掛載的事件處理方法。
編寫BHO流程
1.創建IObjectWithSite顯式接口,創建 COM 類型,實現繼承IObjectWithSite接口
2.實現此接口并在SetSite方法里加上所要掛載的事件
3.處理事件
4.注冊此BHO到注冊表中HKLM下的Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects;(HKCR下的CLSIDs是根據上面的路徑自動注冊的)
5、.net 下須設置此BHO項目的 配置屬性_>生成 中為Interop注冊為True,這樣才能將.net 類庫文件注冊到COM
刪除BHO
打開注冊表項到:HKLM下的Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects 可以看到下面有一些CLSID值,這些值對應相關的插件,點擊可以在默認值后看到相關插件的名稱!可以復制相關CLSID到注冊表中搜索相關CLSID,找到后打開InprocServer32可以看到相關文件的路徑,至于DLL文件等可以用UEDIT32.exe工具打開查看具體信息,當然也可以用修改程序類的eXeScope.exe研究一下!
請根據具體情況刪除相關鍵值和相關文件!
REF:
BHO 的編寫
VCKBase 關于IE 編程文檔中心
C++中使用BHO來屏蔽特定網站
瀏覽器集成教學 自定義瀏覽器
posted on 2008-12-04 17:26 泡泡牛 閱讀(2269) 評論(0) 編輯 收藏 引用 所屬分類: Develop