编写类似于程序集缓存查看器的Windows Shell扩展

时间:2009-09-11 00:20:35

标签: c# shell-extensions

我想编写一个shell扩展来完全自定义特定文件夹的显示,例如Assembly Cache Viewer(浏览到c:\ windows \ assembly,你会明白我的意思)。 哪些COM接口负责提供这些钩子? 我的“观众”将用C#编写......

谢谢!

2 个答案:

答案 0 :(得分:7)

请注意controversy about doing explorer extensions in .NET

示例问题:如果您的目标是.NET 2.0,那么您的扩展将无法在.NET 1.1应用程序显示的任何“打开文件”对话框中工作。进程只能加载一个版本的.NET运行时。

这不只是你的扩展不工作的问题;您将把特定版本的.NET运行时注入到使用文件对话框的任何应用程序中。如果应用程序是一个非托管应用程序,计划加载一个针对较新版本的.NET运行时的COM组件,那么这是个坏消息。

编辑:正如评论中所解释的,这已经由.NET 4.0运行时解决了。因此,托管资源管理器扩展应始终以.NET 4.0或更高版本为目标。

答案 1 :(得分:3)

这篇文章可以帮助您:

  

使用命名空间扩展扩展Windows shell允许您为Windows资源管理器创建一些自定义功能。一个常见用途是启用资源管理器以显示一个真实文件夹中不存在的项目列表,但实际上存在于多个位置。文件夹上的视图使这些项看起来像在一个地方,因此管理它们变得更容易。本文说明了使用C#和.NET Framework创建自定义shell命名空间扩展的过程。 [...]