设想
我在用着Windows 10,但我在其他 Windows 版本中也遇到了同样的问题。
我在 Windows 上下文菜单中添加了一个自定义项,旨在可以通过从目录文件夹或目录背景中单击鼠标右键来访问。
该注册表脚本重现了我自定义的上下文菜单项(子命令除外):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\PATHS]
"MUIVerb"="PATHS"
"SubCommands"="PATHS.AddDirBackground;PATHS.RemoveDirBackground"
"Icon"="C:\\Program Files\\PATHS\\PATHS.Title.ico"
"Position"="bottom"
[HKEY_CLASSES_ROOT\Directory\Background\shell\PATHS]
"MUIVerb"="PATHS"
"SubCommands"="PATHS.AddDirBackground;PATHS.RemoveDirBackground"
"Icon"="C:\\Program Files\\PATHS\\PATHS.Title.ico"
"Position"="bottom"
问题
我遇到的问题是 Windows 似乎以与目录背景相同的方式处理桌面背景,因此当我右键单击桌面背景时,我的自定义上下文菜单项可见:
我不喜欢这种行为,因为当从桌面背景访问时,这个上下文菜单项是无用的,它只会增加桌面上下文菜单的大小。
问题
我如何才能禁止我的上下文菜单项仍然出现在桌面背景的上下文菜单上?
请注意,它是一个通过注册表手动添加的简单的上下文菜单项,我不会假装通过 shell 扩展重新实现。
研究
在本文中,我看到了一种隐藏或禁用任何上下文菜单项的自然方法或技巧:
但是,我不确定该怎么做,也不确定这是否真的是我需要的。
我尝试在桌面背景注册表项试图覆盖我拥有的原始项目录\背景键,但是当我右键单击桌面背景时仍然显示该项目:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\shell\PATHS]
"MUIVerb"="PATHS"
"LegacyDisable"=""
或者:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\shell\PATHS]
"MUIVerb"="PATHS"
"Extended"=""
另一方面,这个技巧对于存储在上述注册表项中的原始项目有效,但是对于我想从上下文菜单中隐藏的“幽灵”或“虚拟”项目,这个技巧不起作用。