共用方式為


動詞和檔案關聯

當使用者以滑鼠右鍵按下 Shell 物件,例如檔案時,會顯示 Shell 快捷方式 (作) 選單。 此功能表包含使用者可以選取以對專案執行各種動作的命令清單。 這些命令也稱為快捷功能表項或動詞。 可以自定義快捷功能表。

本主題的組織方式如下:

檔系統物件的快捷方式功能表簡介

因為快捷功能表通常用於檔案管理, Shell 因此會提供一組預設命令,例如 剪下複製,出現在任何文件系統物件的快捷方式功能表上,例如檔案或資料夾。

下列範例說明以滑鼠右鍵按下 myFile.xyz-ms 所顯示的預設快捷方式功能表。

默認快捷方式功能表的 螢幕快照

MyFile.xyz-ms 的預設快捷方式功能表之所以出現,是因為 .xyz-ms 不是已註冊檔類型的成員。 相反地,.txt 是已註冊的文件類型。 如果您以滑鼠右鍵按下 .txt 檔案,則會在其上方區段中看到具有三個額外命令的快捷選單:列印[編輯],以及 [使用 開啟]

具有已註冊檔類型之檔案之快捷方式功能表的螢幕快照

若要擴充檔類型的快捷方式功能表,您必須為每個命令建立登錄專案。 更複雜的方法是實作快捷方式功能表 (verb) 處理程式,讓您以檔案為基礎擴充檔類型的快捷方式功能表。 如需詳細資訊,請參閱 建立作功能表處理程式作菜单参考

將命令新增至快捷方式功能表

快捷功能表處理程式是檔案類型處理程式,可將命令新增至現有的快捷功能表。 快捷方式功能表處理程式與文件類型相關聯,而且每當類別的成員顯示快捷方式功能表時,就會呼叫。 會 Shell 檢查登錄,以查看檔類型是否與任何快捷方式功能表處理程式相關聯。 如果是,則會 Shell 查詢處理程式以取得其他快捷方式功能表項。

快捷功能表動詞

快捷方式功能表上的每一個命令都會由其 verb識別在登錄中。 這些動詞與以程式設計方式啟動應用程式時,ShellExecuteEx 所使用的動詞相同。

verb是用來識別相關聯命令的Shell簡單文字字串。 每個 verb 對應至用來在主控台視窗或批次 (.bat) 檔案中啟動命令的命令字串。

例如,開啟 verb 通常會啟動程式以開啟檔案。 命令字串通常如下所示:

"My Program.exe" "%1"

如果命令字串的任何專案包含或可能包含空格,則必須以引號括住。 否則,如果專案包含空格,則不會正確剖析。 例如,「我的 Program.exe」 會正確地啟動應用程式。 如果您使用 My Program.exe 而不加上引號,則系統會嘗試啟動 My,並 Program.exe 做為其第一個命令行自變數。 您應該一律使用引號搭配 「%1」 等自變數,這些自變數會由 展開為字串 Shell,因為您無法確定字串不會包含空格。

動詞也可以有與其相關聯的顯示名稱,該名稱會顯示在快捷方式功能表上,而不是 verb 字串本身。 例如,openas 的顯示字串 Open With。 就像一般功能表字串一樣,在顯示字串中包含連字元允許鍵盤選取命令。

串流非文件系統專案和 OpenSearch 結果。

在 Windows 7 和更新版本中,支援透過 OpenSearch 通訊協定,將外部來源連線到 Windows 用戶端。 這可讓使用者搜尋遠端數據存放區,並從 Windows 檔案總管檢視結果。 OpenSearch v1.1 標準定義簡單的檔格式,可用來描述用戶端如何查詢 Web 服務的數據存放區,以及服務應該如何傳回用戶端轉譯的結果。

您可能需要串流非文件系統專案,以避免在 OpenSearch 結果的情況下下載專案。 例如,同盟搜尋功能可讓您從支援 OpenSearch 的非文件系統位置搜尋專案,例如 SharePoint 和其他 Web 服務支援的網站。 在這些專案上叫用動詞時,系統會下載專案的暫存版本,並將它傳遞至實作 verb 。 Verb 鼓勵實作者藉由註冊 支援的 URL 架構 verb 集來串流專案,以避免下載檔案的需求。 動詞會使用 SupportedProtocols 登錄機碼來執行此動作。

註冊應用程式以處理任意文件類型

定義特定檔案類型的快捷方式功能表項可讓您指定相關聯應用程式開啟檔案類型成員的方式。 不過,當用戶嘗試使用應用程式開啟與應用程式無關的檔類型時,應用程式也可以註冊要使用的個別預設程式。 您註冊預設程式的方式與註冊快捷方式功能表項的方式大致相同。 如需定義快捷方式選單項的詳細資訊,請參閱 建立作選單處理程式

默認程式有兩個基本用途。 其中一個是指定應如何叫用您的應用程式來開啟任意文件類型。 例如,您可以使用命令行旗標來指出開啟未知的文件類型。 另一個目的是定義文件類型的各種特性,例如快捷方式功能表項和圖示。 如果使用者將您的應用程式與其他檔案類型產生關聯,該類別將具有這些特性。 如果先前與另一個應用程式相關聯的其他檔類型,這些特性將會取代原始專案。

若要註冊預設程式,請將您為應用程式的 ProgID 建立的相同登錄機碼放在應用程式 HKEY_CLASSES_ROOT\Applications的子機碼下。 您也可以包含 FriendlyAppName 值,為系統提供應用程式的易記名稱。 應用程式的易記名稱也可能從其可執行檔中擷取,但只有在FriendlyAppName值不存在時才會擷取。

下列範例登錄項目說明定義易記名稱和數個快捷功能表項之 MyProgram.exe 的預設程式。 命令字串包含 /a 旗標,以通知應用程式正在開啟任意文件類型。 如果您包含 DefaultIcon 子機碼,則應該使用泛型圖示。

HKEY_CLASSES_ROOT
   MyProgram.exe
      shell
         open
            command
               (Default) = C:\MyDir\MyProgram.exe /a "%1"
         print
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1"
         printto
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"

其他資源

快捷功能表處理程式和多個選取動詞的最佳做法

為您的快捷方式功能表選擇靜態或動態Verb

建立快捷方式功能表處理程式

使用動態動詞 自定義快捷方式功能表

快捷方式 (作) 選單和快捷功能表處理程式

快捷方式功能表參考