Почему наложения значков (из 3rdParty-Apps) не отображаются в проводнике Win8?

Эти замечательные наложения значков, которые дают вам полезную информацию в проводнике Windows, не отображаются. Скриншот того, что я имею в виду

Это самое раздражающее в Dropbox (я уже читал https://www.dropbox.com/help/154/en). Я только что попытался переустановить Dropbox - без помощи. У меня есть эта проблема также с расширением Link Shell, поэтому я не думаю, что это проблема Dropbox; и что-то не так в моей ОС. ОС на самом деле довольно свежая чистая установка...

ОС: Win8 Pro 64-битная.

2 ответа

Решение

Похоже, вы установили слишком много инструментов, которые регистрируют значки наложения. Из-за старого 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?

Если да, то либо удалите или измените конфигурацию приложений, показанных здесь, либо удалите записи реестра вручную (конечно же, их резервное копирование).

Вам не обязательно удалять какие-либо ключи, все, что вам нужно сделать, это переименовать эти ключи с номером перед ними в последовательном порядке, а затем перезагрузить компьютер. Последовательные числа гарантируют, что ваша ОС считает только 15 лучших.

Вот пример:

введите описание здесь

Другие вопросы по тегам