我遇到了一个非常奇怪的问题。我有一个 Windows 程序使用 shell 覆盖图标,但这些图标没有出现在 Windows 资源管理器中。奇怪的是,它们显示在某些“保存”和“另存为”对话框中(MS Office 和 Firefox),但没有出现在其他对话框中(Chrome)。我检查了所有正常的事情,例如确保图标首先出现在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
注册表项。我也查看了 WOW 版本。我甚至按照此问题的建议检查了 DPI 设置:TortoiseSVN shell 覆盖仅显示资源管理器中的中型和大型图标
这些方法都没用,但我终于搞明白了,所以我觉得还是把它贴出来以防别人为此烦恼。我遇到这个问题的系统是 Windows 10,我还没有针对旧版本的 Windows 进行测试。
答案1
最后,我决定在注册表中搜索与未显示图标具有相同值的键,同时检查正在运行的 Windows 10 系统。结果发现所有键的值都显示在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked
当我从那里删除值并重新启动资源管理器时,图标出现了。我不知道它们一开始是如何出现在注册表部分中的,但就是这样。希望这对其他人有所帮助。
答案2
如果您碰巧看到此类症状(某些应用程序中未显示外壳覆盖),您使用的是 64 位 Windows,并且上述答案对您没有帮助,请确保您的应用程序正确注册了两个外壳扩展(一个用于 32 位,另一个用于 64 位)。如果仅加载了 64 位 dll,您将不会在 32 位应用程序中看到覆盖。
32 位 shell 覆盖注册于:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers