共用方式為


如何使用 ExtendedSubCommandsKey 登錄專案建立級聯功能表

在 Windows 7 和更新版本中,您可以使用 ExtendedSubCommandsKey 子機碼來建立擴充的級聯功能表。

下列螢幕擷取畫面是延伸級聯功能表的範例。

顯示裝置延伸級聯功能表的螢幕擷取畫面

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

指示

步驟 1:

HKEY_CLASSES_ROOT\ProgID\\ 層 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

備註

下列螢幕擷取畫面是先前登錄機碼專案範例的圖例。

顯示級聯功能表範例的螢幕擷取畫面,其中顯示記事本和文字板的選擇