選擇靜態或動態快捷方式功能表方法
本主題的組織方式如下:
選擇動詞方法
強烈建議您使用其中一個靜態動詞方法來實作快捷方式功能表。
靜態動詞方法
靜態動詞是實作的最簡單動詞,但仍提供豐富的功能。 一律選擇符合您需求的最簡單快捷方式功能表方法。
靜態動詞 | Description |
---|---|
CreateProcess 與命令列參數 | 這是實作靜態動詞的最簡單且最熟悉的方法。 透過呼叫 CreateProcess 函式來叫用進程,其中包含選取的檔案和任何傳遞為命令列的選擇性參數。 這會開啟檔案或資料夾。 此方法有下列限制:
|
DropTarget/IDropTarget | 以 COM 為基礎的動詞啟用表示支援進程內或跨進程啟用。 DropTarget/當本機伺服器實作IDropTarget 介面時,IDropTarget也支援重複使用已經在執行的處理常式。 它也會透過封送處理的資料物件完美表達專案,並提供叫用網站鏈結的參考,以便您可以透過 QueryService與叫用者互動。 |
Windows 7 和更新版本: IExecuteCommand | 最直接的實作方法。 因為這是 COM 型叫用方法, (像是 DropTarget) 此介面支援同進程和跨進程啟用。 動詞會實作 IExecuteCommand 和 IObjectWithSelection,並選擇性地 實作 IInitializeCommand。 專案會直接當做 Shell 專案陣列傳遞,而來自叫用程式的更多參數可供動詞實作使用,包括叫用點、鍵盤狀態等等。 |
Windows 7 和更新版本:ExplorerCommand/ IExplorerCommand | 啟用透過 IExplorerCommandProvider 提供其命令模組命令的資料來源,以在快捷方式功能表上使用這些命令做為動詞命令。 由於此介面僅支援同進程啟用,因此建議由需要共用命令與快顯功能表之間實作的 Shell 資料來源使用。 |
注意
IExplorerCommand 是靜態和動態動詞之間的混合式。 IExplorerCommand 已在 Windows Vista 中宣告,但其在快捷方式功能表中實作動詞的能力是 Windows 7 的新功能。
如需檔案關聯屬性 之 IDropTarget 和 Shell 查詢的詳細資訊,請參閱 認知類型和應用程式註冊。
慣用動態動詞方法
建議使用下列動態動詞方法:
動詞類型 | Description |
---|---|
上表中所列的靜態動詞 () + 進階查詢語法 (AQS) | 此選項可取得動態動詞可見度。 |
Windows 7 和更新版本: IExplorerCommand | 此選項可啟用在 Windows 檔案總管中命令模組中顯示的動詞和總管命令的常見實作。 |
Windows 7 和更新版本: IExplorerCommandState + 靜態動詞 | 此選項也會取得動態動詞可見度。 這是混合式模型,其中會使用簡單的進程內處理常式來計算指定的靜態動詞是否應該被分離。 這可以套用至所有靜態動詞實作方法,以達到動態行為,並將進程內邏輯的曝光降到最低。 IExplorerCommandState 具有在背景執行緒上執行的優點,因此可避免 UI 停止回應。 比 ICoNtextMenu簡單很多。 |
不建議使用動態動詞方法
ICoNtextMenu 是最強大的,但也是最複雜的實作方法。 它是以在呼叫端執行緒上執行的進程 COM 物件為基礎,這通常是 Windows 檔案總管,但可以是裝載專案的任何應用程式。 ICoNtextMenu 支援動詞可見度、排序和自訂繪圖。 其中一些功能已新增至靜態動詞功能,例如要與命令相關聯的圖示,以及 IExplorerCommand 來處理可見度。
如果您必須藉由註冊檔案類型的動態動詞來擴充檔案類型的快捷方式功能表,請遵循 使用動態動詞自訂快捷方式功能表中提供的指示。
擴充快捷方式功能表
選擇動詞方法之後,您可以藉由註冊檔案類型的靜態動詞來擴充檔案類型的快捷方式功能表。 如需詳細資訊,請參閱 建立操作功能表處理常式。
依作業系統支援動詞方法
下表列出作業系統的動詞調用方法支援。
Verb 方法 | Windows XP | Windows Vista | Windows 7 和更新版本 |
---|---|---|---|
CreateProcess | X | X | X |
DDE | X | X | X |
DropTarget | X | X | X |
ExecuteCommand | X | X | |
ExplorerCommand | X | ||
ExplorerCommandState | X |
相關主題
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應