Почему Windows ограничивает наложения значков на 15?

7372
Nuno

Мы можем видеть бесконечные вопросы о конфликтах Dropbox против TortoiseSVN и многих других приложений.

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

В моем случае у меня есть только Dropbox и TortoiseSVN. Dropbox действительно становится раздражающим - после каждого обновления мне нужно запустить созданный мной скрипт, который удаляет оверлеи Dropbox из реестра, а затем перезапускает Windows Explorer.

Я понимаю, что Windows ограничивает оверлеи до 15, вероятно, из-за производительности.
Однако, увеличит ли это до 25 ~ 35 огромное влияние на производительность?
Почему Microsoft еще не поняла, что это очень популярная проблема, и пыталась исправить это?
Почему, по крайней мере, нет опции, которую продвинутые пользователи могут изменить, чтобы увеличить этот лимит?

20
Я спросил это Microsoft некоторое время назад, и они говорят мне "проблемы перфорации" как причина. Они не увеличивают лимит, у них также есть планы убить их полностью. magicandre1981 7 лет назад 0
Это не просто производительность. В текущей реализации в структуре имеется 4 бита, которые определяют индекс наложения, обеспечивающий максимум 15 наложений. Более значимые биты, необходимые для увеличения этого числа, используются для другой цели. Единственный способ получить больше наложенных значков - это изменить реализацию, что будет иметь серьезные последствия для совместимости. Существует большое количество приложений (хорошо написанных приложений, которые следуют всем правилам), которые полагаются на текущую реализацию и сломались бы, если бы она была изменена. LMiller7 7 лет назад 0

1 ответ на вопрос

20
Ramhound

В моем случае у меня есть только Dropbox и TortoiseSVN. Dropbox действительно становится раздражающим - после каждого обновления мне нужно запустить созданный мной скрипт, который удаляет оверлеи Dropbox из реестра, а затем перезапускает Windows Explorer.

Удалите все неиспользуемые наложения из следующего местоположения:

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIcon OverlayIdentifiers

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Explor эр \ ShellIconOverlayIdentifiers

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

Повлияет ли увеличение до 25 ~ 35 на производительность?

Поскольку текущий предел не может быть изменен, мы не можем предсказать, какое будет влияние на производительность, если ограничение будет увеличено.

Почему Microsoft еще не поняла, что это очень популярная проблема, и пыталась исправить это?

Я бы предположил, что это влияет на меньше людей, чем вы думаете. Только кто-то из команды Windows Shell на самом деле знает этот ответ. Пока Microsoft не обнародует свое решение, мы можем только делать предположения, основанные на том, что никто не увеличил лимит.

Почему, по крайней мере, нет опции, которую продвинутые пользователи могут изменить, чтобы увеличить этот лимит?

Только кто-то из команды Windows Shell на самом деле знает этот ответ. Пока Microsoft не обнародует свое решение, мы можем только делать предположения, основанные на том, что никто не написал код, позволяющий нам увеличить лимит.

Раймонд Чен (Raymond Chen), разработчик Microsoft, говорит о наложении значков

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

Г-н Чен также заявил:

Еще один пример того, как приложения имеют эгоистичное представление о производительности, - компания, разрабатывающая обработчик наложения значков. Оболочка рассматривает вычисления с наложением как элемент с низким приоритетом, поскольку более важно выводить значки на экран, чтобы пользователь мог начать делать то, что он хотел. Украшения могут прийти позже. Эта компания хотела знать, можно ли каким-то образом улучшить свою производительность и наложить их на экран еще до того, как появится значок, демонстрируя феноменально эгоистичную интерпретацию «производительности».

Источник: Что это за маленькие значки наложения: Windows 7 edition