ShellIconOverlayIdentifiers - чому так мало?


84

На даний момент всім відомо, що існує обмеження кількості ShellIconOverlayIdentifiers(з MSDN):

Кількість різних обробників значків, які може підтримувати система, обмежена кількістю місця для накладання піктограм у списку системних зображень. В даний час для накладання піктограм виділено п’ятнадцять слотів, деякі з яких зарезервовані системою. З цієї причини обробники накладання піктограм слід застосовувати лише в тому випадку, якщо немає задовільних альтернатив

Я можу зрозуміти обмеження 15 накладень у Windows 95. Але в середовищі, де є гіги оперативної пам’яті, численні ядра та графічні процесори, чи є якась технічна причина такої низької кількості в сучасній операційній системі?

І чому це значення не можна налаштувати?

Перш ніж дати відповідь "продуктивність", розгляньте: Windows дозволяє таку конфігурацію, що ви можете знизити продуктивність ... навіщо конкретно вибирати це питання?


Чому це позначено як "черепаха"? Мені чогось не вистачає?
Коді Грей

19
Я думав, що я розумний, оскільки tortoisesvn є найбільш часто згадуваним додатком при роботі з надмірно обмеженими значками - здебільшого тому, що воно займає 9 доступних слотів. Видалено тег.
rbellamy

1
Обмеження досі однакові для Windows 10. Не знаю, чому.
Гохан

Відповіді:


86

Якщо хтось тут випадково не працює в команді Windows Shell, я сумніваюся, що ви отримаєте відповідь, яка справді стосується технічних обмежень і того, як вони впливають на вибір дизайну. Але я спробую ...

Я здогадуюсь, що технічних обмежень немає, або, принаймні, зараз немає. Справжньою причиною є, мабуть, те, що ніхто ніколи не знайшов часу, щоб сісти і оновити код, дизайн та специфікацію, щоб зняти це обмеження. Функції не реалізовані за замовчуванням, і те, що обчислювальне середовище змінилося за останні кілька років, не означає, що хтось сів і переписав Windows, щоб повною мірою скористатися всіма цими змінами.

Ви також повинні врахувати, що це, швидше за все, свідомий вибір дизайну, а не нав'язане обмеження. Реймонд Чен (який на самому ділі робить роботу в команді оболонки) опублікував запис в блозі відповідаючи на шум про Windows-витягуючи на «спільне використання руки» накладку. Він наводить переконливий аргумент, що накладання піктограм насправді не є бажаним способом показу інформації (окрім того, що система обмежена 15) [курсив додано]:

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

Мені здається розумним, що зайва метушня, додана до оболонки, просто не варта того, що в більшості справжніх випадків. Команда командної оболонки Windows, очевидно, дійшла такого ж висновку і вирізала накладення на "спільну руку". Пряме пояснення Раймонда:

З огляду на зміни в способах користування комп’ютерами, обмін інформацією стає дедалі більшим за замовчуванням. Коли ви налаштовуєте домашню групу, майже все буде поділено. Щоб усунути візуальну метушню, інформацію було переміщено на панель Деталі.

І я знаю, що ви спеціально просили не згадувати про продуктивність, але Windows справді намагається утримати вас від того, щоб не стріляти собі в ногу. Користувачі вимагають реагування в оболонці, і піктограми накладання можуть заважати цьому. Ще одним доказом того, що вони не є пріоритетними , є інший допис у блозі того самого Раймонда Чена:

Інший приклад програм, що мають егоїстичний погляд на продуктивність, походить від компанії, яка розробляє обробник значків. Оболонка розглядає обчислення накладання як елемент з низьким пріоритетом, оскільки важливіше розміщення піктограм на екрані, щоб користувач міг почати робити все, що він хотів робити. Прикраси можуть з’явитися пізніше. Ця компанія хотіла дізнатись, чи є спосіб покращити свою ефективність і накласти їх на екран ще до появи піктограми, демонструючи феноменально егоїстичну інтерпретацію "продуктивності".


15
Відмінна реакція. Тож, можливо, краще запитання: "Яка альтернатива накладанням піктограм, що представляє ту саму миттєву візуальну чергу щодо стану файлу / папки?" Мені здається, що використання піктограм, щоб зробити більше, ніж ідентифікувати тип вмісту, стає все більш важливим саме з тієї причини, про яку згадує Реймонд Чен - із розмиттям меж розташування файлів, статусу ПИТАНЬ.
rbellamy

3
Я дуже підозрюю, що це не свідомий вибір дизайну, ані нав'язане обмеження, але важке дизайнерське рішення, прийняте давно (близько Win 95), і ніколи не було виправлене через встановлену базу користувачів. Найдурнішим рішенням є те, що кожне розширення накладання може підтримувати лише одне накладання значка, і для кожного файлу оболонка запитує лише "застосовується?". Мало бути , що кожне накладання підтримує масив піктограм, і для кожного файлу оболонка запитує "яке накладання піктограми?", На яке розширення може відповісти "Я не застосовую" як один із варіантів.
Кіт Робертсон,

9
Цікаво, що MS прийняли це, заплямувавши мій ShellIconOverlayIdentifiersзапис у реєстрі сирим OneDrive станом на Win10. Для розробника, який використовує щось на зразок TortoiseSVN / GIT, ці накладання є вирішальними, і той факт, що може бути показаний лише один, є причиною ЧОМУ .
Alex McMillan

2
З усіх речей, які зламала Windows 10, @Alex, це досить далеко в моєму списку. Вирішення накласти OneDrive на користувачів було явно рішенням, прийнятим відділом маркетингу, а не командою оболонки. Ніхто не бюджетував часу та грошей, щоб повернутися назад і вдосконалити списки зображень оболонки, щоб зробити їх зручними для користувача.
Коді Грей

6
Це неприйнятна відповідь. Я знаю, що частина з них прийшла від самої Microsoft, тому неприйнятним є підхід Microsoft. Дивіться мій приклад: я синхронізував папки DropBox, Google Drive, Mega, OneDrive та Tortoise SVN, і я щиро хотів би бачити всі накладання правильно на всіх папках, але не можу, оскільки це тупе обмеження.
Carlos B. Feitoza Filho

13

Відмінний відгук на практичні питання Коді. Щодо того, чому 15, а не якесь інше число, ліміт вписується в сам елемент керування ImageList .


4

Це все дуже добре і добре, як пояснив Коді Грей, але, чесно кажучи, це досить недумно, і, як повідомляється за лаштунками, звучить дещо розчаровано.

У 2015 році та в ОС Windows 10, безсумнівно, може бути і має бути краща здатність, оскільки я зазначив близько тридцяти присутніх накладок і повинен був визначити пріоритети тих, які я найбільше хотів бачити, що зовсім не те, що ви хочете, щоб більшість людей турбувалися. Також я бачу таких агресивних продавців, як Box, які надмірно конкурують, намагаючись визначити пріоритети, і це ніколи не допоможе.

Ось така можливість: Що, якби багатозначно накладені піктограми мали загальний індикатор накладання; маленька прямокутна матриця з декількох кольорів, як кнопка Google Chrome Apps? Окремо накладене просто показало б накладене зображення з довгого списку.

Потім, коли вказівник миші зустрічається з піктограмою, у маленькому вікні вильоту збираються всі варіанти піктограм для перегляду (при невеликому розмірі піктограми або трохи більшому). Кожен накладений значок, у свою чергу, підказкою повідомляє, що це таке, коли ви наводите курсор.

Тепер ви можете мати усі потрібні накладання піктограм, для стану в різних хмарах, для вказівки сховища, як для інструментів Черепаха тощо.


2
Ідея, що стоїть за накладаннями, полягає в тому, що ви повинні мати змогу ідентифікувати статус об’єкта, що перебуває під спостереженням, «з першого погляду». Ваш план, хоча і творчий, вимагав би "рук на клавіатурі або миші", щоб вивести інформацію на поверхню. Не те, щоб у мене було краще рішення ...
rbellamy

Якщо вони повинні знаходитись у вікні вильоту, чому б просто не помістити інформацію в інформаційну панель, панель попереднього перегляду чи інше місце в інтерфейсі користувача? Вся суть накладених піктограм полягає в тому, що вони насправді накладаються і видно з першого погляду.
Коді Грей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.