如何将新项添加到某个文件扩展名上下文菜单

时间:2015-03-22 14:27:52

标签: windows window registry

如何将新项添加到特定文件扩展名上下文菜单(例如.mp3文件)

我还注意到窗口中的所有上下文菜单中都有常见项目,它们是否共享/继承了一个上下文菜单?它在哪里:哪一个用于文本

调用这些键以及如何生成它们(例如{11dbb47c-a525-400b-9e80-a54615a090c0})

对于您建议的注册表是否有一个很好的简要参考?

2 个答案:

答案 0 :(得分:9)

  1. 在“运行”对话框或“开始”菜单搜索框中键入 regedit ,然后按Enter键。它将打开注册表编辑器,现在转到以下键:

    HKEY_CLASSES_ROOT * (用于在所有文件上下文菜单中添加选项) HKEY_CLASSES_ROOT \目录(仅用于在文件夹上下文菜单中添加选项) HKEY_CLASSES_ROOT \ Drive (仅用于在“驱动器”上下文菜单中添加选项) HKEY_CLASSES_ROOT \ Unknown (用于在未知文件上下文菜单中添加选项)

  2. 现在根据上述密钥,您可以找到" Shell "和" Shellex "键。两个键都包含各种条目,当您右键单击文件,文件夹或驱动器时会显示这些条目。我们将使用" Shell "这个例子中的关键:

    • 右键点击" 外壳"键并选择" 新 - >键"
    • 给它任何名字。假设我们给它起了名字" 演示"。
    • 现在在右侧窗格中,双击"默认"字符串值并将其值设置为要在上下文菜单中显示的Label。就像你想添加" Winamp"在上下文菜单中,你可以给它命名"打开Winamp"或类似的。
    • 现在在这个新创建的密钥下创建另一个密钥" 演示"用名称"命令"并在右侧窗格中设置值"默认"到应用的道路。例如,对于winamp,您可以设置其值%programfiles%\Winamp\winamp.exe
  3. 可以找到here

    的完整参考资料

答案 1 :(得分:6)

  

如何将新项目添加到特定文件扩展名上下文菜单

this MSDN article已涵盖如何按摩注册表以创建上下文菜单项条目。它广泛而且做得很好,无需在此重复。

  

我还注意到窗口的所有上下文菜单中都有常见项目

其中大部分都是资源管理器本身可以理解的烘焙项目。有一个后门可以自己添加项目到任何文件,使用HKCR\*注册表项。谨慎使用,这对用户来说非常烦人。

  

例如{11dbb47c-a525-400b-9e80-a54615a090c0}

这是自定义shell扩展处理程序的一个示例,您在HKCR\Folder注册表项中找到了这个,这是将项添加到任何目录的键。可以把它想象成一个插件,它为资源管理器添加了它自身没有的功能。 {guid}选择Explorer加载的可执行文件来实现该项目。导航到HKCR\Classes\CLSID\{guid}以查看该文件,您将看到它是由c:\ windows \ system32 \ explorerframe.dll

实现的

编写自己的shell扩展处理程序并不容易,它需要C ++中的COM编码技能。一种变得模糊的编码技术。使用像C#这样的东西在技术上是可行的,但微软强烈反对,他们不会支持它。您需要编写一个实现IContextMenu接口的进程内COM服务器。编程指南is here