只为特定的文件types添加菜单项到Windows上下文菜单

我已经开发了一个应用程序,使用窗口的上下文菜单加载一个图像(右键单击该文件),目前正在工作,但registry项已打开

HKEY_CLASSES_ROOT\* 

它适用于所有文件。

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

我能做到这一点? 我应该使用哪个registry项?

提前致谢。

1)确定.jpg文件的文件types(ProgID)

这可以通过检查HKEY_CLASSES_ROOT\.jpg的默认值来完成。 它可以是基于你所安装的任何东西,但为了这个例子的目的,我们将其称为jpegfile ,一个常见的默认值。

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

您可以在HKEY_CURRENT_USER\Software\Classes\jpegfile\shell设置每个用户的上下文菜单项。 这个键有一个文件types的动词列表。 在HKEY_LOCAL_MACHINE\Software\Classes\jpegfile\shell有一个类似的键,这些是文件types的系统默认值。 你也可以在那里放一个动词键,但如果HKCU中存在相同的键,它将被覆盖,所以build议。

3)设置命令值

要使其起作用的最小键值是command子键的默认值。 你需要设置你的应用程序的path,如下所示: HKEY_CURRENT_USER\Software\Classes\jpegfile\shell\open_with_myapp\command将被设置为"c:\path\to\myapp.exe" "%1" 。 现在,.jpg文件的上下文菜单将包含一个“open_with_myapp”项目,该项目将在单击时启动您的应用程序,并将所选文件的文件名称作为parameter passing。 当然,您的应用程序如何处理参数取决于您,所以您需要将参数string设置为应用程序可以处理的内容。

4)设置其他的动词属性

我想你可能会想要上下文菜单项阅读一些比关键的名字更友好点。 您可以通过设置该键的默认值( open_with_myapp ),使上下文菜单显示您想要的项目的任何标签。

这是您的基本概述。 肯定检查我的答案这个问题关于文件,它有一个类似的答案:

  • 创buildregistry项以将文件扩展名与C ++中的应用程序相关联