2010-01-23 137 views
37

我已经开发了一个应用程序,该应用程序使用窗口的上下文菜单(右键单击该文件)加载图像,目前正在工作,但注册表项已打开只为特定文件类型添加菜单项到windows上下文菜单

HKEY_CLASSES_ROOT\* 

它适用于所有文件。

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

我能做到吗?我应该使用哪个注册表项?

在此先感谢。

回答

69

1)识别文件类型(进程id)为.jpg文件

这可以通过检查的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),使上下文菜单显示您想要的项目的任何标签。

这是您的基本概述。当然看看我回答这个问题有关关联文件,其中有一个类似的答案:

+0

非常感谢您! – 2010-01-24 19:01:29

+2

我知道这种方法将条目添加到上下文菜单。但是,您是否还可以提及如何将任何条目设置为默认值?我知道如何使用“文件夹选项”来做到这一点,但命令行或注册表选项会很好。 (我认为我们需要用'editflags'输入字符,但不确定。) – anishsane 2014-01-21 07:21:10

+1

@anishsane将'shell'键的默认值设置为您希望默认的动词键的名称 – 2014-01-21 14:30:19

0

another key对作品的独立用户的默认程序注册表: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\"" 
相关问题