繁体   English   中英

集成到 Windows 资源管理器上下文菜单中

[英]Integrating into Windows Explorer context menu

我想写一个小工具,它执行以下操作:

当您右键单击具有特定文件扩展名的文件时,Windows 资源管理器上下文菜单会显示一个附加条目。

当您单击此条目时,将使用此文件作为其参数之一启动某个 EXE。

我想为此使用 C#/.NET 2.0。 如果不可能,我也可以用 C++/Win32 来完成。

我的问题是:

  1. C# .NET 2.0 有可能吗?
  2. 集成到 Windows 资源管理器上下文菜单中的必要功能是什么?
  3. 我怎样才能使它永久化? (我不想在每次启动后重新启动这个工具)
  4. 我需要特别注意什么? (不同的操作系统、安全权限等)

您将需要访问注册表并在root\\\\File\\\\shellroot\\Folder\\\\shell下添加一个键,具体取决于您希望菜单项可见的项目。

在 CodeProject试试这篇文章,它非常有用。

编辑:这里还有另一篇文章可能会有所帮助。

顺便说一句,不支持将 .NET 用于外壳扩展,因为当前无法在同一进程中承载多个运行时版本(.NET 4 将取消此限制)。

考虑一下您有两个 shell 扩展的情况; 一种用于 .NET 3.5,一种用于 .NET 1. 哪个运行时将加载到您的进程中? 好吧,它或多或少是随机的——这取决于首先加载哪个 shell 扩展。 有时可能是 2.0 运行时,有时可能是 1.1 运行时。

如果 .NET 程序创建通用文件对话框,这也是一个问题; 您的 shell 扩展可能会或可能不会加载,并且可能会或可能不会以正确的运行时版本运行。

因此,如果您沿着Shell 扩展路线走下去,您应该使用本机 C++/COM/Win32。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM