创建Windows右键菜单折叠
创建Windows右键菜单折叠
经常会发现windows里面右键菜单特别长,都占满屏幕了。就研究了下如何创建二级菜单进行折叠。效果如下
网上有使用[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\
注册表项存储键值的,但是距离比较远,且配置繁琐,不如直接创建。
具体是使用了Windows注册表的SubCommands指令
- 需在
[HKEY_CLASSES_ROOT\*\shell\
注册表项下新建注册表项xxx,并新建键值为SubCommands
,值为空 - 新建
Shell
项 - 在
Shell
下新建需要调用的菜单项,submenu1/submenu2/submenu3……,对应的再创建command
项,修改默认值为需要执行的命令 - 子菜单条目根据其注册表项的名称进行排序。可以在名称前添加0X类似字符以强制执行特定顺序。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-A]
"MUIVerb"="--文件编辑-A"
"icon"="X:\\SecurityTools\\@HexEdit\\sublime_text_4121_x64\\sublime_text4.exe"
"SubCommands"=""
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell]
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\010Editor]
"Icon"="\"X:\\SecurityTools\\@HexEdit\\@010Editor\\010Editor12\\010Editor.exe\""
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\010Editor\command]
@="\"X:\\SecurityTools\\@HexEdit\\@010Editor\\010Editor12\\010Editor.exe\" %1"
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\Emeditor]
"Icon"="\"X:\\SecurityTools\\@HexEdit\\emed64_portable\\EmEditor.exe\""
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\Emeditor\command]
@="\"X:\\SecurityTools\\@HexEdit\\emed64_portable\\EmEditor.exe\" %1"
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\HxD]
"Icon"="\"X:\\SecurityTools\\@HexEdit\\@HxD\\HxDPortable2.5.0\\HxD64.exe\""
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\HxD\command]
@="\"X:\\SecurityTools\\@HexEdit\\@HxD\\HxDPortable2.5.0\\HxD64.exe\" %1"
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\SubLime_Text4]
"Icon"="\"X:\\SecurityTools\\@HexEdit\\sublime_text_4121_x64\\sublime_text4.exe\""
"CommandFlags"=dword:00000040
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\SubLime_Text4\command]
@="\"X:\\SecurityTools\\@HexEdit\\sublime_text_4121_x64\\sublime_text4.exe\" %1"
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\WinHex]
"Icon"="\"X:\\SecurityTools\\@HexEdit\\@WinHex\\WinHex19.7\\WinHex.exe\""
[HKEY_CLASSES_ROOT\*\shell\Editor-SubCMDs-Atw\Shell\WinHex\command]
@="\"X:\\SecurityTools\\@HexEdit\\@WinHex\\WinHex19.7\\WinHex.exe\" %1"
如果需要在子项前后有分割线的话,新建键值CommandFlags
,Dword值,在级联菜单项之前或之后添加分隔符,分别对应值为0x20 或 0x40。
如果您希望它显示在上下文菜单的底部,请将" Position"="Bottom"添加到条目。
参考
http://io-repo.blogspot.com/2011/05/cascading-context-menus-via-static.html
https://blog.csdn.net/culingluan4376/article/details/108708536
https://docs.microsoft.com/zh-cn/windows/win32/shell/how-to-create-cascading-menus-with-the-extendedsubcommandskey-registry-entry
本文含有隐藏内容,请 开通VIP 后查看