HKLM\Software\Microsoft\Internet Explorer\Extensions\{GUID} 定義按鈕文字、圖示、執行路徑、提示文字。.htm 腳本頁,點選選單項由 IE 載入腳本,腳本透過 COM 自動化元件啟動應用程式。使用 GUIDGEN.EXE (VS 安裝目錄 Common\Tools) 產生兩組 GUID:
工具列按鈕:{32204547-1C47-11D5-A413-00A00CC191CF}
右鍵選單:{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
void CTestView::WriteReg()
{
HKEY hKey; CString subKey, val;
DWORD dwDisp;
// --- 工具列按鈕 ---
subKey = _T("Software\\Microsoft\\Internet Explorer\\Extensions\\{32204547-1C47-11D5-A413-00A00CC191CF}");
RegCreateKeyEx(HKEY_LOCAL_MACHINE, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisp);
RegSetValueEx(hKey, _T("ButtonText"), 0, REG_SZ, (BYTE*)_T("MyTest"), 8);
RegSetValueEx(hKey, _T("CLSID"), 0, REG_SZ, (BYTE*)_T("{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"), 40);
RegSetValueEx(hKey, _T("Default Visible"), 0, REG_SZ, (BYTE*)_T("Yes"), 4);
RegSetValueEx(hKey, _T("Exec"), 0, REG_SZ, (BYTE*)GetAppPath(), len);
RegSetValueEx(hKey, _T("HotIcon"), 0, REG_SZ, (BYTE*)_T("C:\\Test\\MyTest.exe,1"), len);
RegSetValueEx(hKey, _T("Icon"), 0, REG_SZ, (BYTE*)_T("C:\\Test\\MyTest.exe,0"), len);
RegSetValueEx(hKey, _T("MenuStatusBar"), 0, REG_SZ, (BYTE*)_T("啟動 MyTest"), len);
RegSetValueEx(hKey, _T("MenuText"), 0, REG_SZ, (BYTE*)_T("MyTest"), 8);
RegCloseKey(hKey);
// --- 右鍵選單 ---
subKey = _T("Software\\Microsoft\\Internet Explorer\\MenuExt\\MyContextMenu");
RegCreateKeyEx(HKEY_LOCAL_MACHINE, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisp);
RegSetValueEx(hKey, _T(""), 0, REG_SZ, (BYTE*)_T("file:///C:/Test/MySelf.htm"), len);
RegSetValueEx(hKey, _T("Contexts"), 0, REG_DWORD, (BYTE*)&dwordVal, 4); // 0x1 = 預設、連結、圖片等
RegCloseKey(hKey);
}
MySelf.htm (放置於 C:\Test\):
CIEcontext (基類 CCmdTarget,勾選 Creatable by Type ID)。AddContext (返回 void,無參數)。AddContext:
void CIEcontext::AddContext()
{
WinExec("C:\\Test\\MyTest.exe", SW_SHOWNORMAL);
}
AddIEFun.dll、AddIEFun.tlb。regsvr32 AddIEFun.dll 註冊 (或 Tools → Register Control)。| 項目 | 路徑/值 |
|---|---|
| 工具列按鈕 GUID | {32204547-...} |
| 右鍵選單 GUID | {1FBA04EE-...} |
| 執行檔路徑 | RegSetValueEx "Exec" = 完整路徑 |
| 圖示資源索引 | "Icon" = exe,0 ; "HotIcon" = exe,1 |
| 腳本頁路徑 | MenuExt 預設值 = file:///C:/Test/MySelf.htm |
| COM 元件 ProgID | AddIEFun.CIEcontext.1 |
HKLM 需管理員權限,建議安裝程式執行。HKLM 寫入,考慮改寫 HKCU。