最近在做小工具时无意发现一篇文章通过注册表自定义右键联级菜单,下面我将一些使用过程记录下来
1、创建桌面右键菜单通过修改以下注册表:
HKEY_CLASSES_ROOT\DesktopBackground\Shell
2、创建我的电脑右键菜单可修改以下注册表:
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
3、需要在上面1、2提到的注册表中添加节点
如添加了节点Menu1
HKEY_CLASSES_ROOT\DesktopBackground\Shell\Menu1
这里名称可以自己决定
以下是节点的值说明
值 | 说明 |
MUIVerb | 菜单显示名称,例如:Apps |
SubCommands | 此为对应值(可理解为子菜单对应关系值),可以收“;”隔开表示有多个子菜单,例如:notepad;calc |
icon | 菜单图标(可选), 例如:explorer.exe --->此处为取文件夹图标 |
Position | 位置(可选) |
4、添加子菜单
在以下注册表节点
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
需要添加两节点名称与子节点command
如添加记事本子菜单:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Notepad"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"
上面关键在于新的节点notepad与之前在SubCommands定义的要一致
其中notepad节点的默认值@为显示子菜单名称,可填中文
icon为图标,可以使用路劲
子节点command的默认值@为程序路径或程序,一般有安装到C盘的程序可以不用使用路径
最后贴一下我修改过的
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Menu1]
"MUIVerb"="Apps"
"SubCommands"="notepad;calc;360zip;ProxyControl_On_Off"
"icon"="explorer.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Notepad"
"icon"="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
@="Calculator"
"icon"="calc.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
@="calc.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\360zip]
@="360解压软件"
"icon"="360zip.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\360zip\command]
@="360zip.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\ProxyControl_On_Off]
@="ProxyControl_On_Off"
"icon"="E:\\projects_CSharp\\IE_Setter\\IE_Setter\bin\\Debug\\IE_Setter.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\ProxyControl_On_Off\command]
@="E:\\projects_CSharp\\IE_Setter\\ProxyControl_On_Off\\bin\\Debug\\ProxyControl_On_Off.exe"
其中注意路径是要有转义的“\”
附上参考的地址:http://www.askvg.com/add-cascading-menus-for-your-favorite-programs-in-windows-7-desktop-context-menu/
成果图: