首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VC++ 向 IE 工具列新增自訂按鈕:註冊表操作完整指南與程式碼實作

     編輯:VC 教學

原理:IE 5.0+ 延伸機制

IE 允許第三方在工具列加入按鈕,本質是向 HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID} 寫入按鈕屬性 (文字、圖示、點擊動作)。按鈕動作支援四種:COM 物件、Explorer Bar、Script、可執行檔/網址。

註冊表結構詳解

假設 GUID 為 {1FBA04EE-3024-11D2-8F1F-0000F87ABD16} (由 guidgen.exe 產生)。

值名稱型別說明範例
CLSIDREG_SZ固定值,必須等於按鈕 GUID{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
Default VisibleREG_SZ預設顯示與否Yes / No
ButtonTextREG_SZ工具列按鈕文字天極網
IconREG_SZ預設圖示完整路徑 (含索引)C:\App\MyApp.exe,129
HotIconREG_SZ滑鼠懸停圖示路徑C:\App\MyApp.exe,131

動作子鍵 (四選一)

  • COM 物件:新增 ClsidExtension = COM 元件 GUID (如金山詞霸)。
  • Explorer Bar:新增 BandCLSID = Bar 的 CLSID (側邊欄模式)。
  • Script:新增 Script = HTML 檔路徑 (含 VBScript/JS),可存取 external.menuArguments 取得當前網頁 DOM。
  • 可執行檔/網址:新增 Exec = 完整路徑或 URL (如 https://www.yesky.com)。

VC++ 程式碼實作 (對話框專案「IEButton」)

「新增按鈕」按鈕處理函式

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 亦支援)。
  • 圖示資源:EXE 必須包含對應 ID 的圖示資源,可用資源編輯器確認。
  • 即時生效:修改註冊表後,重新啟動 IE 才會顯示新按鈕。
  • 解除安裝:提供「移除按鈕」功能,呼叫 reg.DeleteKey(strKey) 清理註冊表。
  • 64 位元 IE:註冊表導向 HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions\。

應用場景

適合輕量級行銷推廣:使用者安裝主程式後,自動在 IE 建立品牌入口按鈕,點擊直接開啟官網/下載頁/雲端服務,降低使用者尋找成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved