我开发了一个应用程序,它使用窗口的上下文菜单(右键单击文件)加载图像,目前正在工作,但 reg 键处于打开状态
HKEY_CLASSES_ROOT\*
它适用于所有文件。
我希望上下文菜单上的菜单项仅在 .jpg 文件中显示。
我怎样才能做到这一点?我应该使用哪些注册表项?
最佳答案
识别 .jpg 文件的文件类型 (ProgID)
这可以通过检查
HKEY_CLASSES_ROOT\.jpg
的默认值来完成。根据您安装的内容,它可以是任何内容,但出于本示例的目的,我们将其称为jpegfile
,这是常见的默认值。设置该文件类型的上下文菜单项(动词)属性
您可以在
HKEY_CURRENT_USER\Software\Classes\jpegfile\shell
中设置每个用户的上下文菜单项。该键包含文件类型的动词列表。HKEY_LOCAL_MACHINE\Software\Classes\jpegfile\shell
中也有类似的键,这些是文件类型的系统默认值。您也可以在那里放置一个动词键,但如果 HKCU 中存在相同的键,它将被覆盖,所以请注意。设置命令值
要使其正常工作所需设置的最低键值是
command
子键的默认值。您需要使用应用程序的路径进行设置,如下所示:HKEY_CURRENT_USER\Software\Classes\jpegfile\shell\open_with_myapp\command
将设置为"c:\path\to\myapp.exe""%1"
。现在,.jpg 文件的上下文菜单将有一个“open_with_myapp”项目,单击该项目将启动您的应用程序,并将所选文件的文件名作为参数传递。当然,您的应用程序如何处理参数取决于您,因此您需要将参数字符串设置为您的应用程序可以处理的内容。设置其他动词属性
我想您可能希望上下文菜单项读取比键名称更友好的内容。通过设置该键的默认值 (
open_with_myapp
),您可以让上下文菜单显示您想要为项目添加的任何标签。
这就是您的基本概述。一定要查看我对这个有关关联文件的问题的回答,它有类似的答案:
关于windows-xp - 仅针对特定文件类型将菜单项添加到 Windows 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123762/