将覆盖图标设置为 运行 资源管理器而不重启
set overlay Icon to running explorer without restart
我想根据某些状态更改文件的覆盖图标。
如果文件状态改变,覆盖图标应该改变。
例如:如果文件被锁定,则应设置与锁定相关的覆盖图标,如果释放,则应设置不同的覆盖图标。
设置覆盖图标需要实现一个IShellIconOverlayIdentifier interface
在 registry
中写入注册表项以进行 COM
dll
注册,另外 registry
需要覆盖图标标识符注册,见下文:
Key:"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\TestShellIconOverlayIdentifiers"
with default value [CLSID_of_registered_DLL]
在此之后,一些函数需要在注册时调用,以便在已有 运行 个资源管理器实例的系统内存中插入覆盖图标,为此我在下面 post 找到了答案。
How can I programmatically refresh Windows Explorer?
参见 TortoiseCVS - ShellUtils.cpp
上的函数 "bool RebuildIcons()"
我想根据某些状态更改文件的覆盖图标。 如果文件状态改变,覆盖图标应该改变。 例如:如果文件被锁定,则应设置与锁定相关的覆盖图标,如果释放,则应设置不同的覆盖图标。
设置覆盖图标需要实现一个IShellIconOverlayIdentifier interface
在 registry
中写入注册表项以进行 COM
dll
注册,另外 registry
需要覆盖图标标识符注册,见下文:
Key:"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\TestShellIconOverlayIdentifiers"
with default value [CLSID_of_registered_DLL]
在此之后,一些函数需要在注册时调用,以便在已有 运行 个资源管理器实例的系统内存中插入覆盖图标,为此我在下面 post 找到了答案。 How can I programmatically refresh Windows Explorer?
参见 TortoiseCVS - ShellUtils.cpp
上的函数"bool RebuildIcons()"