如何从C#应用程序中显示Windows资源管理器上下文菜单?

我在我的应用程序中有一个文件列表,我想让人们右键单击一个项目并显示Windows资源管理器上下文菜单。 我假设我需要使用IContextMenu接口,但我不确定从哪里开始。

有一个非常好的教程(尽管在C ++中)关于在Raymond Chen的博客上以11个部分(按顺序)托管IContextMenu:

  1. 最初的尝试
  2. 显示上下文菜单
  3. 调用位置
  4. 关键背景
  5. 处理菜单消息
  6. 显示菜单帮助
  7. 调用默认动词
  8. 优化默认命令
  9. 添加自定义命令
  10. 复合扩展 – 基础工作
  11. 复合扩展 – 组合

我写了一个可以帮助你的图书馆。 您可以使用库提供的控件,或者如果您不想这样做,查看代码可能会给您一个答案。

您可以在以下url找到该图书馆: http : //gong-shell.sourceforge.net/

如果有帮助,请告诉我!

我发现了一篇很棒的Code Project文章,它很好地将所有内容封装到一个类中!

Explorer Shell上下文菜单

它就像下面的代码片段一样简单:

// Sample code ShellContextMenu ctxMnu = new ShellContextMenu(); FileInfo[] arrFI = new FileInfo[1]; arrFI[0] = new FileInfo(this.treeMain.SelectedNode.Tag.ToString()); ctxMnu.ShowContextMenu(arrFI, this.PointToScreen(new Point(eX, eY))); 

唯一令人讨厌的事情是,它需要一个FileInfo []数组或一个DirectoryInfo []数组,虽然它很容易稍微修改源代码,因此需要一个FileSystemInfo数组[]