以下屏幕截图是扩展级联菜单的示例。
由于
HKEY_CLASSES_ROOT
是
HKEY_CURRENT_USER
和
HKEY_LOCAL_MACHINE
的组合,因此可以在
“HKEY_CURRENT_USER
\
软件
\
类
”子项下注册子项。 这样做的优点是不需要提升的权限。 其他文件关联可以通过指定相同的
ExtendedSubCommandsKey
子项来重复使用这组整个谓词。 如果不需要重复使用这组谓词,则可以在父级下列出谓词。 在这种情况下,请确保父级的默认值为空,如本部分中的注册表项示例所示。
Instructions
步骤 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:
使用以下任何静态谓词实现填充子ver。 请注意,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
MUIVerb = Notepad
command
(Default) = %SystemRoot%\system32\notepad.exe %1
MUIVerb = Wordpad
CommandFlags = 0x20
command
(Default) = C:\Program Files\Windows NT\Accessories\wordpad.exe %1
以下屏幕截图是上述注册表项条目示例的插图。