.NET:如何创建文件图标覆盖

Posted

技术标签:

【中文标题】.NET:如何创建文件图标覆盖【英文标题】:.NET: How Do I Create File Icon Overlays 【发布时间】:2011-01-30 14:16:16 【问题描述】:

我正在尝试在各种文件的图标上添加不同的图标覆盖(注意:不是某种类型的所有文件,只是某些文件)。如果您不明白我的意思,我指的是 TortoiseSVN、TortoiseHG、Dropbox 等程序的功能。

这可以在 .NET 中完成吗?如果是这样,怎么做?我希望那里有一个图书馆。我找到了 this CodeProject article 类似的东西,但它不是 .NET。

提前致谢。

【问题讨论】:

试试这个codeproject.com/Articles/545781/… 【参考方案1】:

不,它不是 .NET。 Shell 编程属于非托管 C/C++ 领域。 Shell32.dll 有一个类型库,它使某些函数可用于脚本语言和.NET。但是 IShellIconOverlay 接口继承自 IUnknown,脚本无法访问。这在技术上是可行的,但您必须在 C# 中重新声明接口,使用 SDK 的 ShlObj.h 头文件中的声明作为模板。可能有人在某个地方做过,但尝试让它发挥作用并不常见。快速的 Google 搜索没有任何用处。

希望 .NET 4.0 能够恢复一些活动,解决 CLR 版本注入问题。我还没有看到它的迹象。

【讨论】:

那么 .NET 4.0 已经出来了,现在有可能吗? 这从来不是不可能。自从我发布此内容后没有任何变化,.NET 4.0 并没有恢复活动。可能是因为微软宣布它不受支持。 .NET 很好地支持所有这些功能,我几乎完成了所有标准扩展的实现,图标覆盖在这里:codeproject.com/Articles/545781/…

以上是关于.NET:如何创建文件图标覆盖的主要内容,如果未能解决你的问题,请参考以下文章

TortoiseGit 图标覆盖桌面上的图标

如何创建qt图标

如何创建桌面快捷图标

覆盖默认应用程序图标(SVG 或 Fonticon?)

TortoiseSVN 图标覆盖更新到 Windows 10 后不显示

如何使用 C#/.NET 检索打印机图标 [重复]