这是一个通用的问题。使用C#编写用于Windows资源管理器的上下文菜单项的任何指针?
谢谢和问候, 斯
答案 0 :(得分:2)
不要这样做。真。 Raymond Chen对你为什么不应该有great writeup。使用C#
为Windows资源管理器编写上下文菜单项
现在,那篇文章很老了。从那时起,有些事情发生了变化,比如.NET 4.0支持SxS。以前,将两个CLR版本加载到同一个进程(如2.0和1.1)将会失败。您可以将2.0和4.0加载到同一个进程中。
然而还有其他问题。
相反,我建议用旧时尚,无管理的方式写它。
答案 1 :(得分:2)
如果您正在尝试实现一些简单的操作,例如添加带有启动.NET应用程序图标的项目,您可以尝试:
看看Windows注册表。在HKEY_CLASSES_ROOT
下,您可以找到所有文件扩展名。如果您选择其中一个键,您将看到扩展名的标准名称。在HKEY_CLASSES_ROOT
下搜索具有该名称的节点,您将看到此密钥结构:
CLSID
DefaultIcon
Shell
Edit
Command
Open
Command
ShellEx
Shell下的每个节点都引用一个上下文菜单项。
这些节点的默认值(如“编辑”或“打开”)是菜单中显示的文本。
Command的默认值告诉您要启动哪个应用程序。示例:notepad.exe %1
(其中%1是文件URL的占位符)。
DefaultIcon的默认值是图标的url(如果有)。
看一下这篇文章的例子:Add a context menu to the Windows Explorer