¿Por qué Windows limita las superposiciones de iconos a 15?

27

Podemos ver un sinfín de preguntas sobre Dropbox vs TortoiseSVN frente a muchas otras aplicaciones que superponen conflictos.

Dos ejemplos:
¿Por qué las superposiciones de iconos (de 3rdParty-Apps) no se muestran en el Explorador de Win8?
¿Puedo evitar el cambio de iconos superpuestos?

En mi caso, solo tengo Dropbox y TortoiseSVN. Dropbox se está volviendo realmente molesto: después de cada actualización, necesito ejecutar un script que hice que elimina las superposiciones de Dropbox del registro y luego reinicia el Explorador de Windows.

Entiendo que Windows limita las superposiciones a 15 probablemente debido al rendimiento.
Sin embargo, ¿aumentar a 25 ~ 35 causaría un gran impacto en el rendimiento?
¿Por qué Microsoft aún no se ha dado cuenta de que este es un problema muy popular y ha intentado solucionarlo?
¿Por qué no hay, al menos, una opción que los usuarios avanzados puedan cambiar para aumentar este límite?

Nuno
fuente
Le pregunté a Microsoft hace algún tiempo y me dicen "problemas de rendimiento" como razón. No aumentan el límite, también tienen planes de matarlos por completo.
magicandre1981
1
No es solo rendimiento. En la implementación actual, hay 4 bits en una estructura que definen el índice de superposición que proporciona un máximo de 15 superposiciones. Los bits más significativos necesarios para aumentar este número se utilizan para otro propósito. La única forma de obtener más íconos de superposición sería cambiar la implementación y eso tendría importantes implicaciones de compatibilidad. Hay un gran número de aplicaciones (aplicaciones bien escritas que siguen todas las reglas) que dependen de la implementación actual y se romperían si se modificaran.
LMiller7

Respuestas:

24

En mi caso, solo tengo Dropbox y TortoiseSVN. Dropbox se está volviendo realmente molesto: después de cada actualización, necesito ejecutar un script que hice que elimina las superposiciones de Dropbox del registro y luego reinicia el Explorador de Windows.

Elimine las superposiciones no utilizadas de la siguiente ubicación:

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

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

Fuente: ¿Por qué las superposiciones de iconos (de 3rdParty-Apps) no se muestran en el Win8 Explorer?

¿Aumentar a 25 ~ 35 causaría un gran impacto en el rendimiento?

Dado que el límite actual no se puede cambiar, no es posible para nosotros predecir qué tipo de impacto en el rendimiento habría si se aumentara el límite.

¿Por qué Microsoft aún no se ha dado cuenta de que este es un problema muy popular y ha intentado solucionarlo?

Supongo que afecta a menos personas de lo que piensas. Solo alguien, del equipo de Windows Shell, sabría esta respuesta. Hasta que Microsoft dé a conocer su decisión de decisión, solo podemos hacer conjeturas informadas, lo que básicamente sería que nadie ha aumentado el límite.

¿Por qué no hay, al menos, una opción que los usuarios avanzados puedan cambiar para aumentar este límite?

Solo alguien, del equipo de Windows Shell, sabría esta respuesta. Hasta que Microsoft dé a conocer su decisión de decisión, solo podemos hacer conjeturas informadas, lo que básicamente sería que nadie ha escrito el código para permitirnos aumentar el límite.

Raymond Chen, desarrollador de Microsoft, dice lo siguiente sobre las superposiciones de iconos

En términos generales, las superposiciones no son una buena manera de presentar información porque solo puede haber una superposición por icono y hay un límite de 15 superposiciones por ImageList. Si hay dos o más superposiciones que se aplican a un elemento, una ganará y las otras perderán, en cuyo punto el valor de la superposición como una forma de determinar qué propiedades se aplican a un elemento disminuye, ya que la única forma de estar seguro que falta una propiedad es cuando no ve ninguna superposición. (Si ve alguna otra superposición, no puede saber si es porque falta su propiedad o porque esa otra superposición se muestra en lugar de la suya).

El Sr. Chen también declaró:

Otro ejemplo de aplicaciones que tienen una visión egoísta del rendimiento provino de una compañía que desarrolla un controlador de superposición de iconos. El shell trata el cálculo de superposición como un elemento de baja prioridad, ya que es más importante que aparezcan iconos en la pantalla para que el usuario pueda comenzar a hacer lo que sea que quiera hacer. Las decoraciones pueden venir después. Esta compañía quería saber si había una manera de mejorar su rendimiento y mostrar su superposición en la pantalla incluso antes de que aparezca el icono, lo que demuestra una interpretación fenomenalmente egoísta del "rendimiento".

Fuente: ¿Cuáles son esos pequeños iconos superpuestos? Edición de Windows 7

Ramhound
fuente
3

Hay una nueva publicación de blog sobre el tema de Raymond Chen: ¿Por qué hay un límite de 15 superposiciones de iconos de shell? que entra en más detalles, pero la versión corta es: las razones son la compatibilidad con versiones anteriores y API, problemas de rendimiento y el hecho de que las superposiciones de iconos no se recomiendan en estos días:

Básicamente se reduce a "Sería mucho trabajo y somos flojos".

y también:

Pero la razón principal por la que esto no se hace es simplemente que las superposiciones no se recomiendan como la forma de transmitir metadatos sobre un archivo al usuario .

y:

Windows 10 se aleja un paso de las superposiciones de iconos al mover el indicador de estado de sincronización de archivos de OneDrive de una superposición de iconos a una columna de Estado separada.

Borislav Ivanov
fuente
¡Sí! Noté que OneDrive lo hace de manera diferente, e incluso puede mostrar archivos que son "solo en línea". Esa es una característica muy interesante que parece dar más flexibilidad. Muchas gracias por la informacion.
Nuno
1

También quiero corregir un error. Sí, hay un total de 15 iconos asignados, PERO en realidad son 11 iconos superpuestos disponibles porque el Sistema de Windows reserva 4 para sí mismo, por lo que efectivamente son 11 iconos disponibles para otros programas. (15-4 = 11). Esto es según el sitio web oficial de soporte de Microsoft ( URL archivada )

La cantidad de controladores de superposición de iconos que el sistema puede admitir está limitada por la cantidad de espacio disponible para las superposiciones de iconos en la lista de imágenes del sistema. Actualmente hay 15 ranuras asignadas para superposiciones de iconos, 4 de las cuales están reservadas por el sistema. Cuando hay más de 11 controladores de superposición de iconos registrados en el sistema, solo las primeras 11 superposiciones de iconos proporcionadas por los controladores de superposición de iconos se agregan a la lista de imágenes del sistema. No se utilizan los controladores de superposición de iconos restantes.

Fuente: sitio web oficial de soporte de Microsoft ( URL archivada )

Aviso de PSA:

También diseñé una página de Wikipedia dedicada exclusivamente a enumerar todas las superposiciones de iconos de shell, para que los usuarios puedan identificar cuáles son las más útiles para Dropbox, OneDrive, Tortoise, etc.

Por favor revise mi página Wiki y contribuya:

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

rwat128
fuente
Esto es fantástico, ¿puedes agregar las superposiciones de íconos de Adobe Creative Cloud? AccExtIco1, AccExtIco2, AccExtIco3
JamesHenare