以下屏幕截图是扩展级联菜单的示例。

由于 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

以下屏幕截图是上述注册表项条目示例的插图。