最近公司程式需要嵌入各個瀏覽器的外掛程式。
首先需要支援的是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 函式...