Dlaczego system Windows ogranicza nakładki ikon do 15?

27

Widzimy niekończące się pytania dotyczące Dropbox vs. TortoiseSVN vs. wiele innych aplikacji nakładających się na konflikty.

Dwa przykłady:
Dlaczego nakładki ikon (z aplikacji 3rdParty) nie pojawiają się w Eksploratorze Win8?
Czy mogę zapobiec zmianie ikon nakładki?

W moim przypadku mam tylko Dropbox i TortoiseSVN. Dropbox naprawdę staje się denerwujący - po każdej aktualizacji muszę uruchomić skrypt, który usuną nakładki Dropbox z rejestru, a następnie ponownie uruchomi Eksploratora Windows.

Rozumiem, że Windows ogranicza nakładki do 15, prawdopodobnie ze względu na wydajność.
Jednak czy zwiększenie do 25 ~ 35 spowodowałoby ogromny wpływ na wydajność?
Dlaczego firma Microsoft nie zdała sobie jeszcze sprawy z tego, że jest to bardzo popularny problem i próbowała to naprawić?
Dlaczego przynajmniej nie ma opcji, którą zaawansowani użytkownicy mogą zmienić, aby zwiększyć ten limit?

Nuno
źródło
Zapytałem tego Microsoft jakiś czas temu, a oni podali mi „problemy z perfem” jako przyczynę. Nie zwiększają limitu, mają też plany całkowitego ich zabicia.
magicandre1981
1
To nie tylko wydajność. W bieżącej implementacji są 4 bity w strukturze, które definiują indeks nakładki, zapewniając maksymalnie 15 nakładek. Bardziej znaczące bity potrzebne do zwiększenia tej liczby są wykorzystywane w innym celu. Jedynym sposobem na uzyskanie większej liczby ikon nakładek jest zmiana implementacji, co miałoby poważne konsekwencje dla zgodności. Istnieje duża liczba aplikacji (dobrze napisane, które spełniają wszystkie zasady), które opierają się na bieżącej implementacji i uległyby awarii, gdyby zostały zmienione.
LMiller7

Odpowiedzi:

24

W moim przypadku mam tylko Dropbox i TortoiseSVN. Dropbox naprawdę staje się denerwujący - po każdej aktualizacji muszę uruchomić skrypt, który usuną nakładki Dropbox z rejestru, a następnie ponownie uruchomi Eksploratora Windows.

Usuń wszelkie nieużywane nakładki z następującej lokalizacji:

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

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ explor‌ er \ ShellIconOverlayIdentifiers

Źródło: Dlaczego nakładki ikon (z aplikacji 3rdParty) nie pojawiają się w Eksploratorze Win8?

Czy zwiększenie do 25 ~ 35 miałoby ogromny wpływ na wydajność?

Ponieważ obecnego limitu nie można zmienić, nie jesteśmy w stanie przewidzieć, jaki wpływ na wydajność miałby wzrost, gdyby limit został zwiększony.

Dlaczego firma Microsoft nie zdała sobie jeszcze sprawy z tego, że jest to bardzo popularny problem i próbowała to naprawić?

Zakładam, że wpływa to mniej ludzi, niż myślisz. Tylko ktoś z zespołu powłoki systemu Windows znałby tę odpowiedź. Dopóki Microsoft nie poda decyzji o decyzji, możemy jedynie zgadywać, co w zasadzie oznacza, że ​​nikt nie zwiększył limitu.

Dlaczego przynajmniej nie ma opcji, którą zaawansowani użytkownicy mogą zmienić, aby zwiększyć ten limit?

Tylko ktoś z zespołu powłoki systemu Windows znałby tę odpowiedź. Dopóki Microsoft nie poda decyzji dotyczącej decyzji, możemy jedynie zgadywać, co w zasadzie byłoby tak, że nikt nie napisał kodu, który pozwoli nam zwiększyć limit.

Raymond Chen, programista Microsoft, mówi o nakładkach ikon

Ogólnie rzecz biorąc, nakładki nie są dobrym sposobem prezentowania informacji, ponieważ może istnieć tylko jedna nakładka na ikonę, a limit obrazów to 15 nakładek na ImageList. Jeśli istnieją dwie lub więcej nakładek, które odnoszą się do przedmiotu, to jedna wygra, a pozostałe przegrają, w którym to momencie wartość nakładki jako sposobu określenia właściwości mających zastosowanie do przedmiotu zmniejsza się, ponieważ jest to jedyny sposób, aby być pewnym brak właściwości występuje wtedy, gdy nie widać żadnej nakładki. (Jeśli zobaczysz inną nakładkę, nie możesz stwierdzić, czy to dlatego, że brakuje Twojej właściwości, czy też wyświetla się inna nakładka zamiast Twojej).

Pan Chen stwierdził również:

Kolejny przykład aplikacji mających samolubny widok wydajności pochodzi od firmy opracowującej program do obsługi nakładek ikon. Powłoka traktuje obliczenia nakładki jako element o niskim priorytecie, ponieważ ważniejsze jest, aby wyświetlać ikony na ekranie, aby użytkownik mógł zacząć robić to, co chciał. Dekoracje mogą przyjść później. Ta firma chciała wiedzieć, czy istnieje sposób na poprawę wydajności i nałożenie nakładki na ekran jeszcze przed pojawieniem się ikony, demonstrując fenomenalnie samolubną interpretację „wydajności”.

Źródło: Jakie są te małe ikony nakładki: edycja Windows 7

Ramhound
źródło
3

Jest nowy post na blogu na ten temat od Raymonda Chena: Dlaczego istnieje limit 15 nakładek ikon powłoki? która zawiera jeszcze więcej szczegółów, ale krótka wersja jest taka: przyczyny są zgodne ze starszymi wersjami i interfejsami API, problemy z wydajnością oraz fakt, że nakładki ikon nie są obecnie zalecane:

Zasadniczo sprowadza się do: „To byłoby dużo pracy i jesteśmy leniwi”.

i również:

Ale głównym powodem, dla którego nie można tego zrobić, jest to, że nakładki nie są zalecane jako sposób przekazywania użytkownikowi metadanych dotyczących pliku .

i:

Windows 10 robi krok od nakładek ikon, przenosząc wskaźnik stanu synchronizacji plików OneDrive z nakładki ikon do osobnej kolumny Status.

Borysław Iwanow
źródło
Tak! Zauważyłem, że OneDrive robi to inaczej i może nawet wyświetlać pliki „tylko online”. To bardzo fajna funkcja, która wydaje się dawać większą elastyczność. Bardzo dziękujemy za informację.
Nuno
1

Chcę również poprawić nieporozumienie. Tak, przydzielono w sumie 15 ikon, ALE W rzeczywistości dostępnych jest 11 ikon nakładek, ponieważ system Windows rezerwuje 4 dla siebie, więc w rzeczywistości jest to 11 ikon dostępnych dla innych programów. (15-4 = 11). Jest to zgodne z oficjalną witryną pomocy technicznej Microsoft ( zarchiwizowany adres URL )

Liczba programów obsługi nakładek ikon obsługiwanych przez system jest ograniczona ilością dostępnego miejsca na nakładki ikon na liście obrazów systemu. Obecnie dostępnych jest 15 miejsc na nakładki ikon, z których 4 są zarezerwowane przez system. Jeśli w systemie zarejestrowanych jest więcej niż 11 programów do obsługi nakładek ikon, do listy obrazów systemowych dodawane są tylko pierwsze 11 nakładek do ikon, które są dostarczane przez programy do obsługi nakładek ikon. Pozostałe programy obsługi nakładek ikon nie są używane.

Źródło: oficjalna witryna pomocy technicznej Microsoft ( zarchiwizowany adres URL )

Powiadomienie PSA:

Zaprojektowałem także stronę Wikipedii poświęconą wyłącznie listom wszystkich nakładek ikon powłoki, aby użytkownicy mogli określić, które z nich są najbardziej przydatne dla Dropbox, OneDrive, Tortoise itp.

Proszę sprawdzić moją stronę Wiki i przyczynić się:

https://en.wikipedia.org/wiki/List_of_Shell_Icon_Overlay_Identifiers

rwat128
źródło
To fantastyczne, czy możesz dodać nakładki ikon Adobe Creative Cloud? AccExtIco1, AccExtIco2, AccExtIco3
JamesHenare