仅针对特定文件类型向Windows上下文菜单添加菜单项

Sei*_*aft 40 registry windows-xp contextmenu

我开发了一个应用程序,使用窗口的上下文菜单加载图像(右键单击文件),暂时正在工作,但是reg键是打开的

HKEY_CLASSES_ROOT\*
Run Code Online (Sandbox Code Playgroud)

它适用于所有文件.

我希望上下文菜单中的菜单项只能显示.jpg文件.

我能做到的是什么?我应该使用哪些注册表项?

提前致谢.

Fac*_*tic 81

1)识别.jpg文件的文件类型(ProgID)

这可以通过检查默认值来完成HKEY_CLASSES_ROOT\.jpg.它可以是基于您安装的内容的任何内容,但出于本示例的目的,我们将其jpegfile称为常见默认值.

2)设置该文件类型的上下文菜单项(动词)属性

您可以设置每用户上下文菜单项HKEY_CURRENT_USER\Software\Classes\jpegfile\shell.此键具有文件类型的动词列表.有一个类似的键HKEY_LOCAL_MACHINE\Software\Classes\jpegfile\shell,这些是文件类型的系统默认值.您也可以在其中放置一个动词键,但如果HKCU中存在相同的键,它将被覆盖,因此请注意.

3)设置命令值

为使其工作而需要设置的最小键值是command子键的默认值.您需要使用应用程序的路径设置它,如下所示:HKEY_CURRENT_USER\Software\Classes\jpegfile\shell\open_with_myapp\command将设置为"c:\path\to\myapp.exe" "%1".现在,.jpg文件的上下文菜单将有一个"open_with_myapp"项,该项将在单击时启动您的应用,并将所选文件的文件名作为参数传递.当然,您的应用程序如何处理参数取决于您,因此您需要将参数字符串设置为您的应用可以处理的内容.

4)设置其他动词属性

我想你可能会希望上下文菜单项读取比键名更友好的东西.您可以通过设置该键的默认值(open_with_myapp)来让上下文菜单显示您想要的项目标签.

这是你的基本概述.绝对查看我关于关联文件的问题的答案,该文件有类似的答案:

  • 我知道这种方法可以在上下文菜单中添加条目.但是,您是否还可以提及如何将任何条目设为默认值?我知道如何使用"文件夹选项"来执行此操作,但命令行或注册表选项会很棒.(我认为我们需要使用`editflags` dword条目,但不确定.) (2认同)
  • 我认为这不适用于 Windows 10;至少我无法让它工作。我必须把它放在 SystemFileAssociations 中。如果 *\Classes 中的所有内容(即使它出现在 HKCR\.whatever 视图中)如果位于 SystemFileAssociations 中,则似乎会被完全忽略。(我发现其他人在这里做了同样的发现/sf/ask/2768584871/) (2认同)

and*_*947 21

注册表中的另一个密钥与用户的默认程序无关:HKEY_CLASSES_ROOT\SystemFileAssociations.由于没有人在这个问题上提到它...在添加上下文菜单项之前无需检查ProgID.例:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\subtitle]
@="Search subtitles..."

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\subtitle\command]
@="\"D:\\Tools\\subsearch.exe\" \"%1\""
Run Code Online (Sandbox Code Playgroud)

参考:https://docs.microsoft.com/en-us/windows/desktop/shell/app-registration#registering-verbs-and-other-file-association-information

  • FWIW我刚刚在Windows 10中为.SLN文件进行了斗争 Windows 10 - 1909(2020年6月)注意“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\”中的覆盖(此处描述 https://superuser .com/questions/1424724/file-extension-shell-verbs-dont-show-up-in-windows-10-context-menus)这将覆盖向上下文菜单添加附加选项的功能,直到您将其删除。 (3认同)