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

KBLaunch:一鍵直達微軟知識庫文章的運行命令擴展

     編輯:關於VC++

開發人員在查閱微軟知識庫文章時,往往需要經歷:開啟瀏覽器 → 訪問 MSDN → 輸入文章編號 → 等待搜尋 → 點擊結果 等繁瑣步驟。本文介紹一款名為 KBLaunch 的小工具,它將「運行」對話框擴展為知識庫快速啟動器:只需在「運行」中輸入 ?Q123456(? + 文章編號),即可直接以預設瀏覽器開啟對應文章,大幅提升查閱效率。

KBLaunch 使用示意圖

圖 1:在「運行」對話框中輸入 ?Q 文章編號

一、實作原理:Shell 執行鉤子

KBLaunch 透過實作 Shell Execute Hook(外殼執行鉤子)攔截「運行」對話框的執行請求。Shell 執行鉤子會在兩種情況被呼叫:

  1. 呼叫 ShellExecute() 或 ShellExecuteEx() 執行程式時(含檔案總管雙擊檔案)。
  2. 使用者在「運行」對話框輸入指令並按下確定時。

IE 同樣利用此機制:當偵測到 https://、ftp://、www. 等前綴時,啟動預設瀏覽器開啟 URL。KBLaunch 採用相同思路,識別 ?Q 前綴並驗證後續為數字,構造知識庫 URL(https://support.microsoft.com/kb/文章編號),再以 ShellExecute() 啟動瀏覽器。

二、核心介面:IShellExecuteHook::Execute()

Shell 執行鉤擴展只需實作單一介面 IShellExecuteHook,其唯一方法為:

HRESULT Execute(LPSHELLEXECUTEINFO pExecInfo);

SHELLEXECUTEINFO 結構包含執行程式所需的完整資訊(檔案、參數、動作等)。Execute() 需解析命令列、識別 ?Q 前綴、構造 URL 並啟動瀏覽器。完整實作請參考範例專案中的 KBLaunchShlExt.cpp。

三、部署與需求

  • 需安裝 Internet Explorer 3.0 或以上版本(利用 IE 的 Shell 擴展啟動瀏覽器)。
  • 編譯產生的 DLL 需註冊為 Shell 擴展(regsvr32 KBLaunch.dll)。
  • 支援 Windows 9x/NT/2000/XP 等平台。

四、使用示範

註冊後,按 Win+R 開啟「運行」,輸入 ?Q314159 按下 Enter,預設瀏覽器將直接開啟 https://support.microsoft.com/kb/314159。

五、總結

KBLaunch 展示了 Shell 執行鉤子的輕量級應用,僅需實作單一介面方法即可為系統「運行」命令賦予新語意。同樣原理可延伸至自訂協議處理、快速啟動內部工具等場景。完整原始碼已附於文末供下載參考。

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