Warum wird das Symbol von Windows auf 15 begrenzt?

27

Wir können endlose Fragen zu Dropbox vs. TortoiseSVN vs. vielen anderen Apps sehen.

Zwei Beispiele:
Warum werden Icon Overlays (von 3rdParty-Apps) im Win8 Explorer nicht angezeigt?
Kann ich das Ändern von Überlagerungssymbolen verhindern?

In meinem Fall habe ich nur Dropbox und TortoiseSVN. Dropbox wird wirklich ärgerlich - nach jedem Update muss ich ein Skript ausführen, das die Überlagerungen von Dropbox aus der Registrierung löscht und dann den Windows Explorer neu startet.

Ich verstehe, dass Windows Überlagerungen auf 15 begrenzt, wahrscheinlich wegen der Leistung.
Würde eine Erhöhung auf 25 bis 35 eine enorme Auswirkung auf die Leistung haben?
Warum hat Microsoft noch nicht erkannt, dass dies ein sehr beliebtes Problem ist, und versucht, dieses Problem zu beheben?
Warum gibt es zumindest keine Option, die erfahrene Benutzer ändern können, um dieses Limit zu erhöhen?

Nuno
quelle
Ich habe vor einiger Zeit bei Microsoft nachgefragt und sie nennen mir "Perfects" als Grund. Sie erhöhen das Limit nicht, sie haben auch Pläne, sie komplett zu töten.
magicandre1981
1
Es ist nicht nur Leistung. In der aktuellen Implementierung gibt es 4 Bits in einer Struktur, die den Überlagerungsindex definieren und maximal 15 Überlagerungen vorsehen. Die höherwertigen Bits, die zum Erhöhen dieser Anzahl benötigt werden, werden für einen anderen Zweck verwendet. Die einzige Möglichkeit, mehr Überlagerungssymbole zu erhalten, besteht darin, die Implementierung zu ändern. Dies hätte erhebliche Auswirkungen auf die Kompatibilität. Es gibt eine große Anzahl von Anwendungen (gut geschriebene Anwendungen, die alle Regeln einhalten), die auf der aktuellen Implementierung basieren und bei Änderungen nicht mehr funktionieren.
LMiller7

Antworten:

24

In meinem Fall habe ich nur Dropbox und TortoiseSVN. Dropbox wird wirklich ärgerlich - nach jedem Update muss ich ein Skript ausführen, das die Überlagerungen von Dropbox aus der Registrierung löscht und dann den Windows Explorer neu startet.

Entfernen Sie alle nicht verwendeten Überlagerungen an der folgenden Stelle:

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

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ explorer \ ShellIconOverlayIdentifiers

Quelle: Warum werden Icon Overlays (von 3rdParty-Apps) im Win8 Explorer nicht angezeigt?

Würde eine Erhöhung auf 25 bis 35 eine enorme Auswirkung auf die Leistung haben?

Da das aktuelle Limit nicht geändert werden kann, können wir nicht vorhersagen, welche Auswirkungen eine Erhöhung des Limits auf die Leistung haben würde.

Warum hat Microsoft noch nicht erkannt, dass dies ein sehr beliebtes Problem ist, und versucht, dieses Problem zu beheben?

Ich würde davon ausgehen, dass es weniger Menschen betrifft, als Sie denken. Nur jemand aus dem Windows Shell-Team würde diese Antwort tatsächlich kennen. Bis Microsoft seine Entscheidung bekannt gibt, können wir nur fundierte Vermutungen anstellen. Grundsätzlich würde dies bedeuten, dass niemand das Limit erhöht hat.

Warum gibt es zumindest keine Option, die erfahrene Benutzer ändern können, um dieses Limit zu erhöhen?

Nur jemand aus dem Windows Shell-Team würde diese Antwort tatsächlich kennen. Bis Microsoft seine Entscheidung bekannt gibt, können wir nur fundierte Vermutungen anstellen. Grundsätzlich würde dies bedeuten, dass niemand den Code geschrieben hat, der es uns ermöglicht, das Limit zu erhöhen.

Raymond Chen, ein Microsoft-Entwickler, sagt Folgendes über Symbolüberlagerungen

Im Allgemeinen eignen sich Overlays nicht für die Darstellung von Informationen, da es nur ein Overlay pro Symbol geben kann und die Anzahl der Overlays pro ImageList auf 15 begrenzt ist. Wenn es zwei oder mehr Überlagerungen gibt, die für einen Gegenstand gelten, gewinnt eine und die anderen verlieren. An diesem Punkt verringert sich der Wert der Überlagerung, um zu bestimmen, welche Eigenschaften für einen Gegenstand gelten, da dies der einzige Weg ist, um sicher zu sein Das Fehlen einer Eigenschaft liegt vor, wenn überhaupt keine Überlagerung angezeigt wird. (Wenn Sie eine andere Überlagerung sehen, können Sie nicht feststellen, ob Ihre Eigenschaft fehlt oder ob diese andere Überlagerung anstelle Ihrer angezeigt wird.)

Herr Chen erklärte auch:

Ein weiteres Beispiel für Anwendungen mit einem egoistischen Blick auf die Leistung stammt von einem Unternehmen, das einen Icon-Overlay-Handler entwickelt hat. Die Shell behandelt die Überlagerungsberechnung als Element mit niedriger Priorität, da es wichtiger ist, Symbole auf dem Bildschirm anzuzeigen, damit der Benutzer beginnen kann, was immer er tun möchte. Die Dekorationen können später kommen. Diese Firma wollte wissen, ob es eine Möglichkeit gibt, ihre Leistung zu verbessern und ihre Überlagerung auf den Bildschirm zu bringen, bevor das Symbol angezeigt wird, was eine phänomenal selbstsüchtige Interpretation von "Leistung" demonstriert.

Quelle: Was sind diese kleinen Überlagerungssymbole: Windows 7 Edition

Ramhound
quelle
3

Es gibt einen neuen Blogbeitrag von Raymond Chen zum Thema: Warum gibt es ein Limit von 15 Shell-Icon-Overlays? Das geht noch weiter ins Detail, aber die kurze Version ist: Die Gründe dafür sind die Kompatibilität mit älteren Versionen und APIs, Leistungsprobleme und die Tatsache, dass Icon-Overlays heutzutage nicht empfohlen werden:

Im Grunde läuft es auf "Es wäre eine Menge Arbeit und wir sind faul."

und auch:

Der Hauptgrund dafür ist jedoch, dass Überlagerungen nicht empfohlen werden, um dem Benutzer Metadaten zu einer Datei zu übermitteln .

und:

Windows 10 entfernt sich von Symbolüberlagerungen, indem die OneDrive-Dateisynchronisationsstatusanzeige von einer Symbolüberlagerung in eine separate Statusspalte verschoben wird.

Borislav Ivanov
quelle
Ja! Ich habe festgestellt, dass OneDrive das anders macht und sogar Dateien anzeigen kann, die "nur online" sind. Das ist eine sehr coole Funktion, die offenbar mehr Flexibilität bietet. Vielen Dank für die Information.
Nuno
1

Ich möchte auch ein Missverständnis korrigieren. Ja, es sind insgesamt 15 Symbole zugewiesen, ABER es sind tatsächlich 11 Überlagerungssymbole verfügbar, da das Windows-System 4 für sich selbst reserviert, so dass effektiv 11 Symbole für andere Programme verfügbar sind. (15-4 = 11). Dies entspricht der offiziellen Microsoft-Support-Website ( archivierte URL )

Die Anzahl der vom System unterstützten Icon-Overlay-Handler ist durch den verfügbaren Speicherplatz für Icon-Overlays in der System-Image-Liste begrenzt. Derzeit sind 15 Slots für Symbolüberlagerungen vorgesehen, von denen 4 vom System reserviert sind. Wenn mehr als 11 Icon-Overlay-Handler im System registriert sind, werden nur die ersten 11 Icon-Overlays, die von Icon-Overlay-Handlern bereitgestellt werden, zur System-Image-Liste hinzugefügt. Die übrigen Handler für die Symbolüberlagerung werden nicht verwendet.

Quelle: offizielle Microsoft-Support-Website ( archivierte URL )

PSA-Hinweis:

Ich habe auch eine Wikipedia-Seite erstellt, die ausschließlich der Auflistung aller Shell-Symbol-Overlays gewidmet ist, damit Benutzer erkennen können, welche für Dropbox, OneDrive, Tortoise usw. am nützlichsten sind.

Bitte checke meine Wiki-Seite und trage dazu bei:

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

rwat128
quelle
Das ist fantastisch. Können Sie die Adobe Creative Cloud-Symbolüberlagerungen hinzufügen? AccExtIco1, AccExtIco2, AccExtIco3
JamesHenare