ShellIconOverlayIdentifiers 和 windows10

ShellIconOverlayIdentifiers and windows10

图标覆盖对我来说已经成为一个恼人的问题。在 windows10 上,您似乎可以设置 11 个(或者是 10 个?)覆盖图标,其他的将被忽略。这是一个非常小的数字,即使是一项服务也很容易使用。

所以 windows 只需按字母顺序采用前 N 个设置,这会启动以下小趋势。

这是我的注册表:

如您所见,公司开始添加 space 以排在订单前面。在最近的更新中,dropbox 添加了第三个 space!

问题: 1) 有没有办法使用字母顺序之外的其他方式来告诉 windows 使用哪些 N 设置(尽可能多 windows 支持)?

2) 有没有办法增加有效标识符的数量?

不,没有办法增加 15 个图标限制,这是 Windows 多年来的 a Limitation

Every image list includes a list of indexes to use as overlays. An overlay is an image that is drawn transparently over another image. Any image currently in the image list can be used as an overlay. You can specify up to four overlays per image list. This limit has been expanded to 15 in version 4.71.

所以限制在 Comctl32.dll 中,我们无法修复它。覆盖处理程序按 ASCII 码的顺序加载。所以增加更多的步伐会更早地加载它们。我删除了 Dropbox 5- 10 图标 + TSV4 + 5 因为我不使用锁定。我也不使用 Onedrive,所以我最多有 15 个叠加层。

微软似乎注意到了更多图标的需求,Raymond Chen wrote some details about the issue:

The 16-bit limit was carried over from the 16-bit version of the common controls (which still needed to be supported in Windows 95). Of course, nowadays, nobody cares about the 16-bit version of the common controls, so why not start using the upper bits?

There’s an unsatisfying explanation: The code internally that manages the fStyle still uses a WORD in some places, so all the code that manages the fStyle would have to be revised. This occurs in multiple modules across Windows, so a synchronized change would have to be made across multiple components. This is a breaking change at the binary level because the interfaces are no longer compatible. Breaking changes are procedurally difficult to coordinate: The affected code may not be visible to the shell team because they are sitting in a far-away leaf branch that has not yet RI’d to the trunk. It might be that expanding fStyle from a WORD to a DWORD has far-reaching consequences for some component.

因此这是一个历史限制,更改它可能会破坏 Windows shell 之外的其他组件。

我遇到了这个问题。因此,虽然这个数字可能会被锁定,但一位名叫 Lars Pehrsson 的开发人员已经创建了一个方便的可视化实用程序来管理前 11 名。 https://github.com/larspehrsson/ShellIconOverlayIdentifiers/releases/tag/0.0.1