如何在HKEY_CLASSES_ROOT中添加Windows右键菜单可展开选项
实现带可展开子选项的右键菜单
要创建带悬停展开子菜单的右键选项,需要在注册表中设置主菜单容器和子菜单命令两个层级,你之前只配置了单个命令项,所以无法展开。以下是Windows系统下的具体实现步骤:
1. 创建主菜单注册表项
- 打开注册表编辑器:按下
Win+R输入regedit回车 - 定位到目标右键菜单的根路径:
- 所有文件右键:
HKEY_CLASSES_ROOT\*\shell - 文件夹右键:
HKEY_CLASSES_ROOT\Directory\shell - 特定文件类型(如TXT):
HKEY_CLASSES_ROOT\txtfile\shell
- 所有文件右键:
- 右键新建项,命名为自定义名称(比如
MyToolsMenu),设置该项的(默认)值为你想显示的主菜单名称(比如我的工具) - 右键新建字符串值,命名为
SubCommands,这个值是关联子菜单的关键
2. 定义子菜单的命令项
- 定位到命令组存储路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell - 为每个子选项新建一个独立的项:
- 新建项(比如
OpenWithNotepad),设置(默认)值为子选项名称(比如用记事本打开) - 在该项下新建字符串值
Command,值为执行的命令(比如notepad.exe "%1",%1代表选中的文件路径) - 重复上述步骤添加更多子选项,比如新建
OpenCalc项,(默认)值打开计算器,Command值calc.exe
- 新建项(比如
- 回到主菜单的
SubCommands值,填入子项名称并用分号分隔:OpenWithNotepad;OpenCalc
3. 生效设置
- 打开任务管理器,找到
Windows资源管理器,右键选择重启,或者注销当前账户重新登录,右键菜单即可显示可展开的子选项
额外优化
- 可给菜单添加图标:在主菜单或子菜单项中新建字符串值
Icon,值为图标文件路径(比如C:\Windows\System32\notepad.exe,0,,0代表取程序的第一个图标) - 如果命令路径含空格,需用引号包裹,比如
"C:\Program Files\MyApp\launch.exe" "%1"
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

