为什么图标叠加(来自 3rdParty-Apps)没有显示在 Win8 资源管理器中?

klu*_*uka 36 windows icons windows-explorer windows-8

这些在 Windows 资源管理器中为您提供有用信息的精彩图标覆盖没有显示。 我的意思的截图

这是 Dropbox 最烦人的地方(我已经阅读了https://www.dropbox.com/help/154/en)。我只是尝试重新安装 Dropbox - 没有帮助。我的Link Shell Extension也有这个问题,所以我不认为这是一个 Dropbox 问题;我的操作系统出了点问题。该操作系统实际上是一个非常新鲜的全新安装......

操作系统:Win8 Pro 64 位。

mag*_*981 40

看起来您安装了太多注册覆盖图标的工具。由于旧的 16 位代码无法更改,Windows 有一个丑陋的限制,只有 15 个覆盖图标

值 15 来自图像列表的相应限制。ImageList_SetOverlayImage 函数支持每个图像列表最多 15 个图像列表叠加。(嘿,以前更糟。以前限制只有3个!)

好的,但为什么只有 15 个?为什么不多呢?

覆盖图像是从图像列表中绘制图像时使用的信息之一。选项在 fStyle 参数中进行编码,当这些位出于各种目的进行划分时,可以使用四位来指定叠加图像。(您将获得 15 个叠加图像而不是 16 个,因为为了指定“无叠加”而丢失了其中一个值。)

好的,但是 fStyle 参数中的值仅使用底部 16 位。高16位呢?那里有足够的空间。

16 位限制是从 16 位版本的通用控件(Windows 95 仍需要支持)继承而来的。当然,现在没有人关心16位版本的常用控件,那为什么不开始使用高位呢?

有一个不满意的解释:内部管理fStyle的代码在某些地方仍然使用WORD,因此所有管理fStyle的代码都必须修改。这发生在跨 Windows 的多个模块中,因此必须跨多个组​​件进行同步更改。这是二进制级别的重大更改,因为接口不再兼容。重大更改在程序上难以协调:受影响的代码可能对 shell 团队不可见,因为它们位于尚未 RI 到主干的遥远叶子分支中。可能将 fStyle 从 WORD 扩展为 DWORD 对某些组件具有深远的影响。

所以微软不能在不破坏资源管理器的情况下真正修复它。

打开注册表,进入

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

并计算物品的数量。你达到了 15 的限制吗?

如果是,则卸载或重新配置此处显示的应用程序或手动删除注册表项(当然要备份它们)。

  • 打开regedit,进入`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers`和`HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers`并统计项目的数量。你达到了 15 的限制吗? (3认同)

小智 20

您不一定需要删除任何键,您所要做的就是按顺序重命名这些键并在它们前面加上一个数字,然后重新启动机器。序列号将确保您的操作系统只计算前 15 名。

下面是一个例子:

在此处输入图片说明

  • 这只是 Windows 疯狂的一个很好的例子。 (18认同)
  • 这几乎肯定会混淆相关的应用程序或其 [un] 安装程序...... (9认同)
  • 我找到的解决方法(也是一个已经为我工作了好几年的方法)是添加我想要显示的覆盖层的*副本*,其名称在所有其他人之前......例如`___CRD3333DropboxExt1`。这是一个非常丑陋的黑客,但确实使叠加层稳定。 (5认同)
  • 通过导出注册表设置,我发现贪婪的 Dropbox 和 OneDrive 在它们的键名前加了空格(这不会出现在 RegEdit 中,并且会在 ASCII 排序中获胜) - 所以你需要非常巧妙地使用你的键名前缀 '< sp><sp><sp>011keyname' (3认同)