用于为Windows资源管理器编写上下文菜单项的指针

时间:2011-12-29 18:35:09

标签: c# windows

这是一个通用的问题。使用C#编写用于Windows资源管理器的上下文菜单项的任何指针?

谢谢和问候, 斯

2 个答案:

答案 0 :(得分:2)

  

使用C#

为Windows资源管理器编写上下文菜单项
不要这样做。真。 Raymond Chen对你为什么不应该有great writeup

现在,那篇文章很老了。从那时起,有些事情发生了变化,比如.NET 4.0支持SxS。以前,将两个CLR版本加载到同一个进程(如2.0和1.1)将会失败。您可以将2.0和4.0加载到同一个进程中。

然而还有其他问题。

  1. CLR可能需要相当长的时间才能加载。用户不喜欢这样。
  2. 将整个CLR加载到资源管理器的虚拟内存只是为了显示一个上下文菜单似乎有点多。
  3. 相反,我建议用旧时尚,无管理的方式写它。

答案 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