将覆盖图标设置为运行资源管理器而不重新启动



我想根据某些状态更改文件的覆盖图标。如果文件状态发生更改,则覆盖图标应更改。例如:如果文件被锁定,则与锁定相关的覆盖图标应设置&如果释放,则应设置不同的覆盖图标。

要设置覆盖 Icon 需要实现 IShellIconOverlayIdentifier 接口

registry中写入注册表项以进行COM dll注册,以及覆盖图标标识符注册所需的另一个registry,如下所示:

Key:"HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiersTestShellIconOverlayIdentifiers"
with default value [CLSID_of_registered_DLL]

在此之后,一些函数需要在注册时调用以在已经运行的资源管理器实例的系统内存中插入覆盖图标,因为我在下面的帖子中找到了答案。 如何以编程方式刷新 Windows 资源管理器?

请参阅 TortoiseCVS - ShellUtils 上的函数"bool RebuildIcons()".cpp

最新更新