自定义Windows右键菜单

最近在做小工具时无意发现一篇文章通过注册表自定义右键联级菜单,下面我将一些使用过程记录下来

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

自定义Windows右键菜单_第1张图片

这里名称可以自己决定

以下是节点的值说明

说明
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/


成果图:

自定义Windows右键菜单_第2张图片

你可能感兴趣的:(C#经历)