如何将新项添加到特定文件扩展名上下文菜单(例如.mp3文件)
我还注意到窗口中的所有上下文菜单中都有常见项目,它们是否共享/继承了一个上下文菜单?它在哪里:哪一个用于文本
调用这些键以及如何生成它们(例如{11dbb47c-a525-400b-9e80-a54615a090c0})
对于您建议的注册表是否有一个很好的简要参考?
答案 0 :(得分:9)
在“运行”对话框或“开始”菜单搜索框中键入 regedit ,然后按Enter键。它将打开注册表编辑器,现在转到以下键:
HKEY_CLASSES_ROOT * (用于在所有文件上下文菜单中添加选项) HKEY_CLASSES_ROOT \目录(仅用于在文件夹上下文菜单中添加选项) HKEY_CLASSES_ROOT \ Drive (仅用于在“驱动器”上下文菜单中添加选项) HKEY_CLASSES_ROOT \ Unknown (用于在未知文件上下文菜单中添加选项)
现在根据上述密钥,您可以找到" Shell "和" Shellex "键。两个键都包含各种条目,当您右键单击文件,文件夹或驱动器时会显示这些条目。我们将使用" Shell "这个例子中的关键:
%programfiles%\Winamp\winamp.exe
。可以找到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。