Anscheinend haben Sie zu viele Tools installiert, mit denen Überlagerungssymbole registriert werden. Windows hat ein hässliches Limit von nur 15 Overlay-Symbolen, da der alte 16-Bit-Code nicht geändert werden kann:
Der Wert 15 ergibt sich aus dem entsprechenden Grenzwert für Bildlisten. Die ImageList_SetOverlayImage-Funktion unterstützt bis zu 15 Bildlisten-Overlays pro Bildliste. (Hey, früher war es schlimmer. Früher waren es nur 3!)
Okay, aber warum nur 15? Warum nicht mehr
Das Overlay-Bild ist eine der Informationen, die beim Zeichnen eines Bildes aus einer Bilderliste verwendet werden. Die Optionen sind im Parameter fStyle codiert. Wenn die Bits für verschiedene Zwecke aufgeteilt wurden, standen vier Bits zur Angabe des Überlagerungsbilds zur Verfügung. (Sie erhalten 15 Overlay-Bilder anstelle von 16, weil Sie einen der Werte verlieren, um "kein Overlay" anzugeben.)
Okay, aber die Werte im Parameter fStyle verwenden nur die unteren 16 Bits. Was ist mit den oberen 16 Bits? Da ist viel Platz.
Das 16-Bit-Limit wurde von der 16-Bit-Version der allgemeinen Steuerelemente übernommen (die in Windows 95 noch unterstützt werden mussten). Natürlich kümmert sich heutzutage niemand mehr um die 16-Bit-Version der allgemeinen Steuerelemente. Warum also nicht die oberen Bits verwenden?
Es gibt eine unbefriedigende Erklärung: Der Code, der den fStyle intern verwaltet, verwendet an einigen Stellen immer noch ein WORT, sodass der gesamte Code, der den fStyle verwaltet, überarbeitet werden müsste. Dies tritt in mehreren Modulen in Windows auf, sodass eine synchronisierte Änderung in mehreren Komponenten vorgenommen werden muss. Dies ist eine bahnbrechende Änderung auf der Binärebene, da die Schnittstellen nicht mehr kompatibel sind. Breaking Changes sind prozedural schwierig zu koordinieren: Der betroffene Code ist für das Shell-Team möglicherweise nicht sichtbar, da sie in einem weit entfernten Blattast sitzen, der noch nicht mit dem Stamm verbunden ist. Es kann sein, dass das Erweitern von fStyle von einem WORD zu einem DWORD weitreichende Konsequenzen für einige Komponenten hat.
Microsoft kann es also nicht wirklich reparieren, ohne den Explorer zu beschädigen.
Öffnen Sie regedit und gehen Sie zu
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
und
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
und zähle die Anzahl der Gegenstände. Erreichen Sie das Limit von 15?
Wenn ja, deinstallieren Sie die hier gezeigten Anwendungen, konfigurieren Sie sie neu oder entfernen Sie die Registrierungseinträge manuell (Sicherung natürlich).