我想编辑 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_USER
HKEY_LOCAL_MACHINE
HKEY_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_CANCOPY
SFGAO_CANMOVE