Похоже, вы установили слишком много инструментов, которые регистрируют значки наложения. Из-за старого 16-битного кода, который не может быть изменен, Windows имеет ужасное ограничение только на 15 значков наложения :
Значение 15 пришло из соответствующего предела для списков изображений. Функция ImageList_SetOverlayImage поддерживает до 15 наложений списка изображений на один список изображений. (Эй, раньше было хуже. Предел был всего 3!)
Хорошо, но почему только 15? Почему не больше?
Наложение изображения является одной из частей информации, используемой при рисовании изображения из списка изображений. Опции кодируются в параметре fStyle, и когда биты были разделены для различных целей, были доступны четыре бита, которые можно использовать для указания наложенного изображения. (Вы получаете 15 наложенных изображений вместо 16, потому что вы теряете одно из значений, чтобы указать «без наложения».)
Хорошо, но значения в параметре fStyle используют только младшие 16 бит. Как насчет старших 16 бит? Там много места.
16-разрядное ограничение было перенесено из 16-разрядной версии общих элементов управления (которые все еще должны были поддерживаться в Windows 95). Конечно, в настоящее время никому нет дела до 16-битной версии общих элементов управления, так почему бы не начать использовать старшие биты?
Есть неудовлетворительное объяснение: внутренний код, который управляет fStyle, все еще использует WORD в некоторых местах, поэтому весь код, который управляет fStyle, должен быть пересмотрен. Это происходит в нескольких модулях Windows, поэтому необходимо синхронизировать изменения в нескольких компонентах. Это серьезное изменение на двоичном уровне, потому что интерфейсы больше не совместимы. Разрывать изменения с процедурной точки зрения сложно: скоординированный код может быть невидим для команды оболочки, потому что они находятся в далекой конечной ветви, которая еще не завершила RI в ствол. Возможно, расширение fStyle с WORD на DWORD имеет далеко идущие последствия для некоторых компонентов.
Таким образом, Microsoft не может исправить это, не сломав Explorer.
Откройте regedit, перейдите к
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
а также
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
и посчитать количество предметов. Вы достигаете предела 15?
Если да, то либо удалите или измените конфигурацию приложений, показанных здесь, либо удалите записи реестра вручную (конечно же, их резервное копирование).