2011-12-29 100 views

回答

1

使用C#编写的上下文菜单项的Windows资源管理器

不要这样做。真。雷蒙德陈有一个great writeup为什么你不应该。

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

但还有其他问题。

  1. CLR可能需要很长时间才能加载。用户不喜欢那样。
  2. 将整个CLR加载到资源管理器的虚拟内存中以显示上下文菜单看起来有点多。

相反,我会建议将它写成旧时尚,非管理方式。

2

如果你正在努力实现简单的东西,比如增加与启动一个.net应用程序图标的项目,你可以试试这个:

看看Windows注册表。在HKEY_CLASSES_ROOT下,您可以找到所有文件扩展名。如果您选择其中一个键,您将看到扩展名的标准名称。搜索该名称HKEY_CLASSES_ROOT下一个节点,你会看到这个键结构:

CLSID 
DefaultIcon 
Shell 
    Edit 
    Command 
    Open 
    Command 
ShellEx 

壳牌下的每个节点是指上下文菜单项。 这些节点的默认值(如“编辑”或“打开”)是菜单中显示的文本。 Command的默认值告诉您要启动哪个应用程序。示例:notepad.exe %1(其中%1是文件url的占位符)。 DefaultIcon的默认值是图标的URL(如果有)。

看一看这篇文章的例子:Add a context menu to the Windows Explorer

相关问题