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

圖 1:在「運行」對話框中輸入 ?Q 文章編號
KBLaunch 透過實作 Shell Execute Hook(外殼執行鉤子)攔截「運行」對話框的執行請求。Shell 執行鉤子會在兩種情況被呼叫:
ShellExecute() 或 ShellExecuteEx() 執行程式時(含檔案總管雙擊檔案)。IE 同樣利用此機制:當偵測到 https://、ftp://、www. 等前綴時,啟動預設瀏覽器開啟 URL。KBLaunch 採用相同思路,識別 ?Q 前綴並驗證後續為數字,構造知識庫 URL(https://support.microsoft.com/kb/文章編號),再以 ShellExecute() 啟動瀏覽器。
Shell 執行鉤擴展只需實作單一介面 IShellExecuteHook,其唯一方法為:
HRESULT Execute(LPSHELLEXECUTEINFO pExecInfo);
SHELLEXECUTEINFO 結構包含執行程式所需的完整資訊(檔案、參數、動作等)。Execute() 需解析命令列、識別 ?Q 前綴、構造 URL 並啟動瀏覽器。完整實作請參考範例專案中的 KBLaunchShlExt.cpp。
regsvr32 KBLaunch.dll)。註冊後,按 Win+R 開啟「運行」,輸入 ?Q314159 按下 Enter,預設瀏覽器將直接開啟 https://support.microsoft.com/kb/314159。
KBLaunch 展示了 Shell 執行鉤子的輕量級應用,僅需實作單一介面方法即可為系統「運行」命令賦予新語意。同樣原理可延伸至自訂協議處理、快速啟動內部工具等場景。完整原始碼已附於文末供下載參考。