BHO

瀏覽器輔助對象

瀏覽器輔助對象是微軟推出的作為瀏覽器對第三方程序員開放交互介面的業界標準,利用BHO的交互介面,就可以在載入IE瀏覽器的同時進行相應的IE控制處理或載入其它程序,實現與IE瀏覽器的交互。

介紹


瀏覽器輔助對象,全稱BrowserHelperObject,以下簡稱BHO,就是我們常說的IE瀏覽器插件。

實現原理


BHO的目的是為了更好的幫助程序員打造個性化瀏覽器,以及為程序提供更簡潔的交互功能,現在很多IE個性化工具就是利用BHO的來實現。符合BHO介面標準的程序代碼被寫為DLL動態鏈接庫形式在註冊表裡註冊為COM對象,還要在BHO介面的註冊表入口處進行組件註冊,以後每次IE啟動時都會通過這裡描述的註冊信息調用載入這個DLL文件,而這個DLL文件就因此成為IE的一個模塊(BHO組件),與IE共享一個運行周期,直到IE被關閉。

開發案例


下面採用VB6.0來創建BrowserHelperObject,實現記錄IE瀏覽網址與日期時間。
詳細過程如下:
2.1打開VB6.0,點擊菜單欄[文件]--[新建工程],在彈出的[新建工程]頁面中選擇ActiveXDLL,保存工程為TestBHO.vbp;
2.2將類模塊中的Class1改名為TestB-HO並保存為TestBHO.cls;
2.3點擊菜單欄[工程]--[引用],選擇引用“VBShellLibrary”(VBSHELL.TLB)、“Mi-crosoftHTMLObjectLibrary”(MSHTML.TLB)、“MicrosoftInternetControls”(shdocvw.dll);
2.4在類模塊TestBHO.cls中添加核心介面代碼,實現與IE的介面;
2.5生成介面dll文件TestBHO.dll並複製到系統system32目錄下;
2.6運行"regsvr32TestBHO.dll"註冊TestBHO.dll文件,然後打開註冊表,通過查找TestBHO.dll,找到其CLSID,再從註冊表中找到介面,在其下新建項,項名為TestBHO.dll的CLSID;
2.7新打開一個IE瀏覽器,打開幾個網頁,再查看C:\bho.txt文件,是不是已經記錄了你瀏覽的網頁地址,效果如何?
至此,這個BHO介面已經完成,每次新打開一個IE窗口,都會載入TestBHO.dll,每打開一個網頁,都會將上網日期時間、網頁地址記錄到C:\bho.txt中,關閉IE窗口時,TestBHO.dll也會自動關閉,不再運行記錄網址。

應用


目前,BHO技術已經廣泛應用於網際網路程序開發中,實現的功能也多種多樣,包括網頁內容過濾、自動填單、廣告攔截、上網行為監控、網頁翻譯等功能,大家熟知的軟體像百度工具條、迅雷等工具都利用了BHO技術,甚至很多病毒木馬、流氓軟體也都利用了這種技術,當然,清理它們的殺毒軟體,專殺工具也要利用此技術,所以掌握這種技術對相關程序開發很有幫助。