windows-xp - 仅针对特定文件类型将菜单项添加到 Windows 上下文菜单

标签 windows-xp registry contextmenu

我开发了一个应用程序,它使用窗口的上下文菜单(右键单击文件)加载图像,目前正在工作,但 reg 键处于打开状态

HKEY_CLASSES_ROOT\*

它适用于所有文件。

我希望上下文菜单上的菜单项仅在 .jpg 文件中显示。

我怎样才能做到这一点?我应该使用哪些注册表项?

最佳答案

  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),您可以让上下文菜单显示您想要为项目添加的任何标签。

这就是您的基本概述。一定要查看我对这个有关关联文件的问题的回答,它有类似的答案:

关于windows-xp - 仅针对特定文件类型将菜单项添加到 Windows 上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123762/

相关文章:

linux - Cygwin:使用 cronjob 启动 Windows 批处理文件

Python操作系统错误: Too many open files

python - Windows下构建cython程序的问题

c++ - Visual Studio 2005 中的默认字符集 'Unicode'

batch-file - 将命令输出分配给批处理文件中的变量

WPF - 当 ListView 为空时不显示上下文菜单

c++ - 注册表问题 - 使用 C++ 删除键/值

c# - 如何使用 C# 检查 COM dll 是否已注册?

javascript - Chrome 扩展 : Context menu on editable selected text only

c# - 从 Windows 上下文菜单接收参数