IE 允許第三方在工具列加入按鈕,本質是向 HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID} 寫入按鈕屬性 (文字、圖示、點擊動作)。按鈕動作支援四種:COM 物件、Explorer Bar、Script、可執行檔/網址。
假設 GUID 為 {1FBA04EE-3024-11D2-8F1F-0000F87ABD16} (由 guidgen.exe 產生)。
| 值名稱 | 型別 | 說明 | 範例 |
|---|---|---|---|
| CLSID | REG_SZ | 固定值,必須等於按鈕 GUID | {1FBA04EE-3024-11D2-8F1F-0000F87ABD16} |
| Default Visible | REG_SZ | 預設顯示與否 | Yes / No |
| ButtonText | REG_SZ | 工具列按鈕文字 | 天極網 |
| Icon | REG_SZ | 預設圖示完整路徑 (含索引) | C:\App\MyApp.exe,129 |
| HotIcon | REG_SZ | 滑鼠懸停圖示路徑 | C:\App\MyApp.exe,131 |
ClsidExtension = COM 元件 GUID (如金山詞霸)。BandCLSID = Bar 的 CLSID (側邊欄模式)。Script = HTML 檔路徑 (含 VBScript/JS),可存取 external.menuArguments 取得當前網頁 DOM。Exec = 完整路徑或 URL (如 https://www.yesky.com)。void CIEButtonDlg::OnAdd() {
CRegKey reg;
// 1. 產生專屬 GUID (此處寫死,實際應用 guidgen 產生)
CString strGuid = _T("{06926B30-424E-4f1c-8EE3-543CD96573DC}");
CString strKey = _T("Software\\Microsoft\\Internet Explorer\\Extensions\\") + strGuid;
// 2. 取得本程式完整路徑與圖示索引
TCHAR szPath[MAX_PATH], szIcon[MAX_PATH], szHotIcon[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
_tcscpy_s(szIcon, szPath); _tcscat_s(szIcon, _T(",129")); // 資源 ID 129
_tcscpy_s(szHotIcon, szPath); _tcscat_s(szHotIcon, _T(",131")); // 資源 ID 131
// 3. 建立註冊表項目
reg.Create(HKEY_LOCAL_MACHINE, strKey);
reg.SetValue(_T("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"), _T("CLSID"));
reg.SetValue(_T("Yes"), _T("Default Visible"));
reg.SetValue(_T("天極網"), _T("ButtonText"));
reg.SetValue(szIcon, _T("Icon"));
reg.SetValue(szHotIcon, _T("HotIcon"));
// 動作:開啟網頁
reg.SetValue(_T("https://www.yesky.com/"), _T("Exec"));
// 若要執行 Script:reg.SetValue(_T("C:\\test.html"), _T("Script"));
}
HKLM 需管理員權限,Vista+ 需 UAC 提權或改寫 HKCU (IE 亦支援)。reg.DeleteKey(strKey) 清理註冊表。HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions\。適合輕量級行銷推廣:使用者安裝主程式後,自動在 IE 建立品牌入口按鈕,點擊直接開啟官網/下載頁/雲端服務,降低使用者尋找成本。