c# - 如何为 Windows 创建自定义 Shell 上下文处理程序?

标签 c# .net windows-shell

问题

语言:C# 2.0 或更高版本


我想注册上下文处理程序以在用户右键单击某些文件(在我的例子中为 *.eic)时创建菜单。从这些菜单注册、注销(清理)和处理事件(点击)的过程是什么?

我知道这与 Windows 注册表有关,但考虑到 .net 中有多少东西,如果有方便的方法可以干净简单地完成此操作,我不会感到惊讶。

代码片段、网站引用、评论都很好。请把它们扔给我。

更新


显然,正如一些用户评论的那样,在托管语言中创建上下文菜单存在一个小问题。是否有任何其他首选方法可以实现相同的行为,或者我应该花时间研究这些解决方法?我根本不介意这样做,我很高兴人们已经付出努力使这成为可能 - 但我仍然想知道是否有一种“适当/干净”的方式来实现这一目标。

最佳答案

抵制用托管语言编写 Shell 扩展 - 如果你走这条路,有很多事情可能会失败。

浏览此线程以了解更多详细信息。如果确实需要,它包含执行此操作的链接,以及关于为什么可以执行但不应该执行的明智建议。

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/1428326d-7950-42b4-ad94-8e962124043e/

您又回到了非托管 C/C++,这是您唯一真正的工具。

关于c# - 如何为 Windows 创建自定义 Shell 上下文处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/117651/

相关文章:

c# - 跟踪正在移动的文件(可能在磁盘之间),VB.NET(或C#)的最佳方法

c# - SSIS脚本任务问题

c# - C# 8.0 中是否有针对非空的 "check and get"运算符?

c# - C# 的 F# Xml TypeProvider

.net - 编译器错误 2039

visual-c++ - 如何更改某些文件类型的图标?

java - 当简单的 Java Nio 客户端发送消息时 Netty 服务器抛出异常

c# - 在 BizTalk 2009 中查找外部程序集的用法

c# - 无论实际响应如何,Polly 重试策略结果始终成功

windows - 与 Windows 外壳集成