基本上來說,新增工作欄按鈕只需要修改註冊表就可以實現。通過修改註冊表來實現添加按鈕的步驟如下:
1、建立一個GUID。
2、開啟登錄編輯程式,轉到HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions部分,
在其下添加一個新的項,名稱為 <Your GUID> ,Your GUID為你剛建立的GUID。
3、在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱為HotIcon,該值定義當按鈕具有熱點時的表徵圖,它的一般類型為:
包含表徵圖的檔案全路徑名,表徵圖索引,例如:
C:\PROGRA~1\KINGSOFT\XDICT\ieplugin.DLL,208
4、在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱為Icon,該值定義當按鈕的表徵圖,它的一般類型為:
表徵圖檔案全路徑名,表徵圖索引
5、在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱為ButtonText,該值定義按鈕的ToolTip文本。
6、在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱為Default Visible,該值定義按鈕是否可見,如果是,則該值設定
為"Yes",否則設定為"No"。
7、在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱為Clsid,將該值設定為{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
8、在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱為Exec,該值定義點擊按鈕後啟動並執行檔案的全路徑名稱,例如:
c:\program files\samples\net.exe
例如NetAnts的按鈕登錄機碼的內容就是象下面這樣:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{57E91B47-F40A-11D1-B792-444553540000}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Default Visible"="Yes"
"HotIcon"="C:\\PROGRA~1\\NETANTS\\NetAnts.exe,1001"
"Icon"="C:\\PROGRA~1\\NETANTS\\NetAnts.exe,1000"
"Exec"="C:\\PROGRA~1\\NETANTS\\NetAnts.exe"
"ButtonText"="NetAnts"
"MenuText"="&NetAnts"
"MenuStatusBar"="Launch NetAnts"
當點擊NetAnts按鈕時就會運行Netants。上面的登錄機碼中下面的兩項:MenuText項添加一個功能表項目到菜單
的“工具”欄中,MenuStatusBar項定義當游標移動到添加的功能表列上後顯示在狀態列中提示文本。此外在註冊表的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>下還可以添加一個名稱為
MenuCustomize的字串類型值,將該值設定為"Help"將使功能表項目出現在“協助”功能表列中,否則出現在“工具”欄中。
當然,我們不會滿足於只是添加一個按鈕,執行一個程式,我們希望能夠獲得當使用者點擊按鈕時能夠操控當前
頁面,在註冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>
下建立一個新的String類型的值,名稱設定為一個htm檔案的全路徑名,同前面介紹的添加滑鼠右鍵菜單一樣,在點擊
按鈕後IE會調用該檔案,在檔案中通過設定VBs cript訪問external對象的menuArguments屬性就可以獲得瀏覽器中的
頁面。例如我們將HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\<Your GUID>\VBs cript
的值設定為c:\program files\samp.htm,然後在c:\program files下建立一個名為Samp.htm的檔案,在檔案中輸入以下
指令碼內容:
<s cript language="VBs cript">
Set objNetSamp=CreateObject("IEContextMenu.IEMenu1")
userURL=external.menuArguments.location.href
Call objNetSamp.AddUrl(userURL,"")
</s cript>
開啟IE瀏覽器,點擊建立按鈕,就會彈出對話方塊顯示當前頁面的URL。注意該項同前面設定的Exec項不能夠同時使用。
最後,對於按鈕表徵圖,IE需要兩種尺寸的表徵圖:20x20和16x16的,前者用於正常狀態下的顯示,後者用於在全螢幕
下的顯示,所以上面HotIcon和Icon指向的表徵圖資源應該是三個表徵圖的組合,這三個表徵圖的規格如下:
16x16 16-色 icon (必須)
20x20 16-色 icon (可選)
20x20 256-色 icon (必須)
在設計表徵圖時,256色表徵圖應該使用Windows半色調調色盤,而16色表徵圖使用Windows 16色調色盤。