创建级联菜单

创建级联菜单

我想编辑 Windows 资源管理器的上下文菜单。我想创建自己的菜单,其中包含子菜单,如图所示。还想执行一些任务,例如复制和移动到其他目标。有人可以告诉我如何使用注册表执行此操作吗?

这可能吗?如果可能的话,请逐步回答我。

Folder/file 
 -->Right click
    -->List of menu(Open,copy,send to,My menu name)
       -->My menu name ->(Copy,Move) 
          -->copy -->list of "fixed" folders or destination names
                     (They are already in my Hard disk) 
                     (On click on it it will perform copy operation).

我只是想在上下文菜单中创建子菜单。以及复制和移动操作,并且我想显示我在任何驱动器中创建的文件夹。并且有人单击该文件夹它将执行复制操作。 新菜单

答案1

创建级联菜单

在 Windows 7 及更高版本中,您可以直接通过注册表创建静态菜单。

由于是和HKEY_CLASSES_ROOT的组合,因此您可以在子项下注册任何自定义动词。这样做的主要优点是不需要提升权限。HKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CURRENT_USER\Software\Classes

来源:创建快捷菜单处理程序

注册表模板

这是您可以使用的每个用户注册表模板。只需将其粘贴到新文本文档中,然后应用所需的更改。然后将其保存为文件.reg,并将其合并到注册表中。自定义菜单将添加到所有文件和文件夹中。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu]
"MUIVerb"="My menu name"
"Position"="Bottom"
"SubCommands"=""

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd1]
@="Copy"
"AttributeMask"=dword:00000001
"AttributeValue"=dword:00000001
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-31246"

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd1\command]
@="copy command here"

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd2]
@="Move"
"AttributeMask"=dword:00000002
"AttributeValue"=dword:00000002
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-4145"

[HKEY_CURRENT_USER\Software\Classes\*\shell\MyMenu\shell\cmd2\command]
@="move command here"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu]
"MUIVerb"="My menu name"
"Position"="Bottom"
"SubCommands"=""

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd1]
@="Copy"
"AttributeMask"=dword:00000001
"AttributeValue"=dword:00000001
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-31246"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd1\command]
@="copy command here"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd2]
@="Move"
"AttributeMask"=dword:00000002
"AttributeValue"=dword:00000002
"ImpliedSelectionModel"=dword:00000000
"MUIVerb"="@shell32.dll,-4145"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\MyMenu\shell\cmd2\command]
@="move command here"

评论

  • AttributeMask值指定旧金山高专办要测试的掩码的位值的值。
  • AttributeValue值指定旧金山高专办被测试的位的值。
  • 对于项目动词指定ImpliedSelectionModel零,或者对于背景快捷菜单上的动词指定非零。

来源:创建快捷菜单处理程序

在上面的模板中,AttributeMask和分别AttributeValue设置为0x00000001和。这些值与和常量0x00000002相关联,它们决定是否可以复制/移动指定的项目。SFGAO_CANCOPYSFGAO_CANMOVE

进一步阅读

相关内容