我需要一种方法来使用 C# 或 C++ 在 Windows XP/Vista 中为文件夹和文件创建图标覆盖?有什么例子吗?
谢谢,-肖恩!
我需要一种方法来使用 C# 或 C++ 在 Windows XP/Vista 中为文件夹和文件创建图标覆盖?有什么例子吗?
谢谢,-肖恩!
Tigris 的TortoiseSVN产品大量使用由多个 Tortoise 产品共享的库提供的图标覆盖,这些覆盖本身是用 C++ 而不是 C# 编写的。
TortoiseOverlays 项目的文档解释了他们如何使用它以及他们遇到的问题(用户名:guest,空密码),GPL 的源代码在Subversion 存储库中(与上面相同的用户名/密码)。
来自文档的片段:
TortoiseOverlays 向资源管理器注册自己来处理上面提到的九个状态,即它注册了九个覆盖处理程序。资源管理器进程初始化 TortoiseOverlays 处理程序,调用它的 IShellIconOverlayIdentifier::GetOverlayInfo()。TortoiseOverlays 在 HKLM\Software\TortoiseOverlays\Statusname 下查找已注册的覆盖处理程序并调用它们的 GetOverlayInfo() 方法,以便它们也可以初始化(请注意,对图标名称、索引的任何更改......您的处理程序所做的任何更改都会在稍后被覆盖并赢得'不被使用 - 现在是 TortoiseOverlays 处理图标)。初始化之后,TortoiseOverlays 会将对其 IShellIconOverlayIdentifier::IsMemberOf() 方法的每个调用中继到其他处理程序。返回 S_OK 的第一个处理程序确定是否显示图标。