共用方式為


如何使用 ExtendedSubCommandsKey 登錄項建立下拉選單

在 Windows 7 和之後的版本中,您可以使用 ExtendedSubCommandsKey 子機碼來建立擴展串聯功能表。

以下螢幕截圖是展開下拉式選單的範例。

螢幕快照,顯示裝置的擴充級聯功能表

由於 HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINE的組合,因此您可以在 HKEY_CURRENT_USER\Software\Classes 子機碼下註冊子動詞。 這樣做的優點是不需要提升權限。 其他檔案關聯可以藉由指定相同的 ExtendedSubCommandsKey 子機碼,重複使用這組整個動詞。 如果您不需要重複使用這組動詞,則可以將動詞列在父節點下。 在此情況下,請確定父系的預設值是空的,如本節的登錄專案範例所示。

指示

步驟 1:

例如,在 HKEY_CLASSES_ROOT\ProgID\shell\CascadeMenuKey 下建立子機碼,並為 CascadeMenuKey 提供名稱,例如 CascadeTest。 然後新增 REG_SZ 類型的 MUIVerb 項,並命名為例如測試串聯功能表 2,如下列登錄範例所示。

HKEY_CLASSES_ROOT
   txtfile
      shell
         CascadeTest
            MUIVerb = Test Cascade Menu 2

步驟 2:

在您建立的 CascadeTest 子機碼底下,新增 ExtendedSubCommandsKey 子機碼,然後新增文件子命令 (類型為 REG_SZ):例如:

HKEY_CLASSES_ROOT
   txtfile
      Shell
         Test Cascade Menu 2
            (Default)
            ExtendedSubCommandsKey
               Layout
               Properties
               Select all

請確定 測試串聯選單 2 子機碼的預設值為空,顯示為 (未設定值)

步驟 3:

使用下列任何靜態動詞實現填入子動詞。 請注意,CommandFlags 子機碼代表EXPCMDFLAGS值。 如果您想要在串聯功能表項前後新增分隔符,請使用ECF_SEPARATORBEFORE (0x20) 或 ECF_SEPARATORAFTER (0x40)。 如需這些 Windows 7 和更新版本旗標的描述,請參閱 IExplorerCommand::GetFlags。 ECF_SEPARATORBEFORE 僅適用於最上層的選單項目。 MUIVerb 的類型為 REG_SZ,而 CommandFlags 的類型為 REG_DWORD

HKEY_CLASSES_ROOT
   txtile
      Shell
         Test Cascade Menu 2
            (Default)
            ExtendedSubCommandsKey
               Shell
                  cmd1
                     MUIVerb = Notepad
                     command
                        (Default) = %SystemRoot%\system32\notepad.exe %1
                  cmd2
                     MUIVerb = Wordpad
                     CommandFlags = 0x20
                     command
                        (Default) = C:\Program Files\Windows NT\Accessories\wordpad.exe %1

備註

下列截圖是先前登錄機碼條目的範例。

螢幕快照顯示級聯功能表的範例,其中顯示記事本和寫字板選項