![为什么我的静态快捷菜单处理程序会覆盖 Windows 10 跳转列表行为?](https://linux22.com/image/1488002/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E9%9D%99%E6%80%81%E5%BF%AB%E6%8D%B7%E8%8F%9C%E5%8D%95%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E4%BC%9A%E8%A6%86%E7%9B%96%20Windows%2010%20%E8%B7%B3%E8%BD%AC%E5%88%97%E8%A1%A8%E8%A1%8C%E4%B8%BA%EF%BC%9F.png)
我最近想在右键菜单中添加一个新的命令菜单,以便能够使用 Sysinternals 安全地删除文件和目录删除。 使用MSDN 文档和注册表编辑器我在注册表中创建了一个新菜单项,其中有一个包含 SDelete 命令的子菜单。我为文件类型*
和文件类型都创建了此菜单Directory
,以便能够删除文件和目录。到目前为止,一切运行良好,我的新菜单适用于文件和文件夹。
然而,当我后来想使用任务栏中的 Explorer 跳转列表打开我的个人资料时,我意识到它不是打开我的 Explorer,而是调用我的个人资料上的 SDelete 命令(当时我很高兴在执行前添加了 5 秒延迟 ;-))。基本上所有 Explorer 跳转列表条目都是这样运行的。
我把问题追溯到我的目录处理程序,但仍然找不到问题所在。您可以通过将以下代码保存到 .reg 文件中并执行它来重现该问题。仅当您知道 .reg 文件的工作原理并且可以手动撤消更改时才这样做!
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\sysinternals]
"MUIVerb"="Testmenu"
"SubCommands"="mySubCommand"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\mySubCommand]
@="A Command that should do sth."
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\mySubCommand\command]
@="cmd /K \"echo mySubCommand has been invoked\""
谁能告诉我我做错了什么以及如何避免这种跳转列表行为?
答案1
这肯定是 Windows 10 的一个错误,我之前也见过几个案例。解决方法是在 Folder 或 AllFilesystemobjects 中实现动词,而不是在“目录”下。请参阅我在 Microsoft 论坛上对同一问题的回复。
文件夹的自定义上下文菜单与 Windows 默认行为冲突 - Microsoft Community
Windows 10 中的级联菜单和文件资源管理器跳转列表问题(有更好的说明)