如何使用 ExtendedSubCommandsKey 登錄專案建立級聯功能表
在 Windows 7 和更新版本中,您可以使用 ExtendedSubCommandsKey 子機碼來建立擴充的級聯功能表。
下列螢幕擷取畫面是延伸級聯功能表的範例。
因為HKEY_CLASSES_ROOT是HKEY_CURRENT_USER和HKEY_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
備註
下列螢幕擷取畫面是先前登錄機碼專案範例的圖例。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應