在 Windows 资源管理器中为每个用户创建上下文菜单子菜单

Make context menu submenu per user in Windows Explorer

我正在尝试按照 this answer 在 Windows 资源管理器中创建一个带有一些自定义命令的子菜单,但需要在 HKEY_CURRENT_USER 中完成所有操作。虽然我能够在该联系人中创建子菜单,但我找不到以这种方式创建子命令的方法。

答案说它们应该在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell', so I tried what I thought would be the user equivalentHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell` 中,但这似乎没有任何效果。

有没有办法创建这些子命令以便 Explorer 在 HKEY_CURRENT_USER 上下文中找到它们?

我找到了一个解决方案,无需将条目添加到非用户可写的注册表位置:

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\testmenu]
    "MUIVerb"="Nice Name"
    "subcommands"=""
    "Icon"="c:\path\to\icon.ico"

请注意带有空字符串值的 subcommands 条目,这似乎很重要。

要在菜单中显示任何子命令,请添加以下内容:

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\testmenu\Shell\subcommandname]
    @="Nice Name of Subcommand"
    "Icon"="c:\path\to\another_icon.ico"

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\testmenu\Shell\subcommandname\command]
    @="c:\path\to\command.exe"

这会将目录的子菜单放在资源管理器的左侧窗格中,对于主 window 使用基本路径 HKEY_CURRENT_USER\Software\Classes\Directory\shell,对于文件使用 HKEY_CURRENT_USER\Software\Classes\*\shell