c 開發乙個簡單的BHO

2021-06-22 20:01:44 字數 1829 閱讀 1990

最近公司程式需要嵌入各個瀏覽器的外掛程式。

首先需要支援的是ie的外掛程式。又稱為bho(browser helper object 瀏覽器輔助物件).

比起在c++中開發bho,c#確實是更加簡單

bho主體程式時urltrack類。而這個類我們需要從介面iobjectwithsite繼承。

iobjectwithsite的原始碼比較簡單

[comimport(), comvisible(true), guid("e479dd28-3784-49df-8c1b-2b0da2191a92"),

inte***cetype(cominte***cetype.inte***ceisiunknown)]

public inte***ce iserviceprovider

上述的guid可以自己手動生成乙個

另外主體程式urltrack類

getsite

public int getsite(ref guid guid, out intptr ppvsite)

setsite---按自己需求給webbrowser新增各種事件來監控ie的事件,並觸發

public int setsite(object newsite)

else

return 0;

}

registerbho---bho加入到登錄檔的方法

[comregisterfunction]

public static void registerbho(type type)

string guid = type.guid.tostring("b");

registrykey bhokey = registrykey.opensubkey(guid, true);

if (bhokey == null)

// noexplorer: dword = 1 prevents the bho to be loaded by explorer.exe

bhokey.setvalue("noexplorer", 1);

bhokey.close();

registrykey.close();

}

unregisterbho--- bho清理出登錄檔的方法

[comunregisterfunction]

public static void unregisterbho(type type)

最後生成的dll。我們可以通過系統的regasm.exe程式來進度com註冊

命令主要是  regasm /codebase xx.dll( regasm.exe在 c:\windows\microsoft.net\framework\v2.0.50727,註冊時把regasm.exe拷貝出來和dll放置同乙個目錄下,便可以進度註冊)

然後你的ie瀏覽器就被綁架了。。

有個問題需要注意哦!!生成dll的同時,debug目錄下還有interop.shdocvw.dll需要同時拷貝過去,否則bho不會生效。。我自己被這裡坑了2,3天,找錯誤。

好吧!我知道不給原始碼是不能滿足你們這群狼的。在我的資源裡面找一下

開發乙個簡單的WebExtension

首先需要準備乙個45版本以上的火狐瀏覽器用於開發擴充套件。1.需要編寫的第乙個檔案是我們的manifest.json。這個檔案是整個擴充套件的核心,是乙個按照json格式寫成的檔案。既然是json格式就要有相應的key和value,這裡列出擴充套件中常用的幾個key。manifest version...

乙個簡單的post開發

準備工作 安裝好 編輯器pycharm python語言 django 一 建立專案firstapi 開啟pycharm,選擇django,建立專案的名字 二 建立應用api 三 在專案的setting中新增應用的名字 四 在url中匯入web的views的函式 from web.views imp...

乙個簡單的verlig程式 乙個簡單C程式的介紹

我們前面學了c語言的一些理論知識,今天通過乙個簡單的程式先來看一看c語言程式是什麼樣子。然後再對程式中的 進行介紹。這個語句的功能是進行有關的預處理操作。include稱為檔案包含命令,後面尖括號的內容稱為標頭檔案或首檔案。此處指包含stdio.h系統標頭檔案,在下面主函式中使用的printf 函式...