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

当您右键单击具有某个文件扩展的文件时,Windows Explorer上下文菜单显示了附加条目。

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

我想为此使用c#/。net 2.0。如果不可能,我也可以使用C ++/Win32进行操作。

我的问题是:

  1. C#.NET 2.0是否可以?
  2. 集成到Windows Explorer上下文菜单中的必要功能是什么?
  3. 我该如何永久性? (我不想在每次启动后重新启动此工具)
  4. 我必须特别照顾什么? (不同的操作系统,安全权限等)
有帮助吗?

解决方案

您将需要访问注册表并添加一个密钥 root\\File\\shell 或者 root\Folder\\shell, ,取决于您想要哪些菜单项可见的项目。

尝试 本文在Codeproject上, ,非常有用。

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

其他提示

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

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

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

因此,如果您跌倒了 外壳延伸路线 您应该使用本机C ++/com/win32。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top