是否可以轻松找到与上下文菜单项等效的命令提示符?

是否可以轻松找到与上下文菜单项等效的命令提示符?

例如,Comodo Internet Security 已将两个项目添加到我的右键菜单中,“使用 Comodo 扫描”和“在 Comodo 容器中运行”。我并不希望它们都阻塞我的上下文菜单;我永远不会使用扫描(我更喜欢使用 Kaspersky 进行文件扫描),而且我很少使用虚拟桌面。我想要做的是通过注册表禁用它们(我知道如何操作),然后在我的发送菜单中添加一个“在 Comodo 容器中运行”的项目。我已经知道如何通过在 shell:sendto 中创建包含命令提示符参数的快捷方式来添加此类项目。但是,我无法弄清楚这些参数应该是什么才能使其发挥与原始 Comodo 上下文菜单项相同的功能。

有谁知道是否有一种简单的方法可以找出应用程序创建的上下文菜单项的 cmd 等效项?我希望能够对几个不同的应用程序的项目执行此操作,而不仅仅是 Comodo。我不知道是否有一种通用的方法可以将注册表的胡言乱语转化为可理解的 cmd 代码,但谷歌没有找到任何结果。有谁知道这是否可能?

答案1

这可能会变得很棘手,因为有多个地方和方法可以添加上下文菜单项。

HKEY_CLASSES_ROOT注册表中包含上下文菜单项和 shell 扩展注册等内容。该配置单元的某些子项代表您在 Explorer 中看到的对象类型。您可能需要四处寻找才能找到菜单项的确切注册位置。特别有趣的键是:

  • *适用于所有文件
  • Directory右键单击文件夹项时应用于所有目录
  • 在当前文件夹背景中单击鼠标右键时,Background的子键将应用于所有目录Directory
  • exefile适用于应用程序(EXE 文件)

其中一些子项有一个shell子项,其中包含用于 shell 特定注册的子项。带有command子项的注册表示上下文菜单项。例如,在我的系统上,AC3 文件有一个来自此分支的“使用 VLC 媒体播放器播放”上下文菜单项:

HKEY_CLASSES_ROOT
  Subkey: ac3file
    Subkey: shell
      Subkey: PlayWithVLC
        Default value: Play with VLC media player
        Subkey: command
          Default value: "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --started-from-file --no-playlist-enqueue "%1"

子项的默认值command是单击该项目时调用的命令行。%1替换为该项目所使用的文件/目录。相关的 HowToGeek 文章。

不幸的是,有些没有命令行,而是通过 COM 对象运行。有些上下文菜单项根本没有不同的注册表项,而是由 shell 扩展动态添加的。相关的 shell 扩展位于shellex\ContextMenuHandlers文件类型键的分支下,而不是shell。如果单击此类项目会产生新进程,您可能能够使用进程探索器要查看使用的命令行 - 只需将鼠标悬停在进程上即可。否则,可能无法使用命令行模拟菜单项。

相关内容