icon how custom change windows icons windows-explorer windows-shell

how - windows dll icons



ShellIconOverlayIdentifiers: ¿por qué tan pocos? (3)

A menos que alguien aquí trabaje en el equipo de Shell de Windows, dudo que va a obtener una respuesta que realmente aborde las limitaciones técnicas y cómo afectan la elección del diseño. Pero lo intentaré...

Creo que no hay ninguna limitación técnica, o al menos no hay una ahora. La razón real es, presumiblemente, que nadie se haya tomado el tiempo de sentarse y actualizar el código, el diseño y la especificación para levantar esta limitación. Las características no se implementan por defecto, y solo porque el entorno informático ha cambiado en los últimos años no significa que alguien se sentó y reescribió Windows para aprovechar al máximo todos esos cambios.

También debe considerar que es más que probable una elección de diseño consciente, en lugar de una limitación impuesta. Raymond Chen (que realmente trabaja en el equipo de shell) publicó una entrada de blog que respondía al alboroto acerca de que Windows 7 eliminaba la superposición de "compartir mano". Él hace un argumento convincente de que la superposición de iconos no es realmente una forma deseable de mostrar información (más allá del hecho de que el sistema está limitado a 15) [énfasis añadido]:

En general, las superposiciones no son una buena forma de presentar información porque solo puede haber una superposición por icono , y existe un límite de 15 superposiciones por ImageList. Si hay dos o más superposiciones que se aplican a un elemento, entonces uno ganará y los otros 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 ves ninguna superposición. (Si ve alguna otra superposición, no puede decir si es porque su propiedad falta o porque se muestra esa otra superposición en lugar de la suya).

Me parece razonable que el desorden extra añadido al caparazón simplemente no valga la pena en la mayoría de los casos del mundo real. Obviamente, el equipo de Windows Shell llegó a la misma conclusión y cortó la superposición de "manos compartidas". La explicación directa de Raymond:

Teniendo en cuenta los cambios en la forma en que las personas usan las computadoras, compartir información se está convirtiendo cada vez más en el estado predeterminado. Cuando configura un grupo en el hogar, casi todo se va a compartir. Para eliminar el desorden visual, la información se movió al panel Detalles.

Y, sé que específicamente pidió que no mencionara el rendimiento, pero Windows realmente intenta evitar que se pegue un tiro en el pie. Los usuarios exigen capacidad de respuesta en el shell, y los iconos de superposición pueden interferir con esto. Como una prueba más de que no son la prioridad , otra publicación del mismo Raymond Chen rebate:

Otro ejemplo de aplicaciones que tienen una visión egoísta del rendimiento proviene 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 tener iconos en la pantalla para que el usuario pueda comenzar a hacer lo que quiera. Las decoraciones pueden venir más tarde. Esta empresa quería saber si había una manera de mejorar su rendimiento y obtener su superposición en la pantalla incluso antes de que aparezca el icono, lo que demuestra una interpretación fenomenalmente egoísta del "rendimiento".

En este punto, todos saben que hay un límite para el número de ShellIconOverlayIdentifiers (de MSDN):

La cantidad de manejadores de superposición de iconos diferentes que puede admitir el sistema está limitada por la cantidad de espacio disponible para superposiciones de iconos en la lista de imágenes del sistema. Actualmente hay quince espacios asignados para superposiciones de iconos, algunos de los cuales están reservados por el sistema. Por esta razón, los manejadores de superposición de íconos deberían implementarse solo si no hay alternativas satisfactorias

Puedo entender el límite de 15 superposiciones en Windows 95. Pero en un entorno donde hay Gigs de RAM, numerosos núcleos y GPU, ¿hay alguna razón técnica para un número tan bajo en un sistema operativo moderno?

¿Y por qué este valor no es configurable?

Antes de dar la respuesta de "rendimiento", considere: Windows permite la configuración de modo que puede matar el rendimiento ... ¿por qué elegir específicamente este tema?


Excelente respuesta sobre los problemas prácticos por parte de Cody. En cuanto a por qué 15 y no a otro número, el límite se incorpora al control ImageList .


Todo esto está muy bien, como lo explica Cody Gray, pero, francamente, es bastante carente de imaginación, y como se informa detrás de las escenas, sonando un poco frustrado

En 2015 y con Windows 10, seguramente puede y debe haber una mejor capacidad, ya que noté una treintena de superposiciones y tuve que priorizar las que más quería ver, que no es de lo que más desea que la gente se preocupe. También veo vendedores agresivos como Box compitiendo demasiado para tratar de priorizarse, y eso nunca irá bien en ningún lugar.

Aquí hay una posibilidad. ¿Qué ocurre si los iconos superpuestos tienen un indicador de superposición genérico? una pequeña matriz rectangular de colores múltiples, como el botón Google Chrome Apps? Singly overlaid solo mostraría la superposición de una larga lista.

Luego, cuando el puntero del mouse se encuentra con el icono, una pequeña ventana emergente recoge todas las variaciones de iconos para ver (con un tamaño de icono pequeño o un poco más grande). Cada icono superpuesto a su vez anuncia con la información sobre herramientas qué es, cuando pasa el mouse.

Ahora puede tener todas las superposiciones de iconos que necesita, para indicar en varias nubes, para indicaciones de repositorio como para herramientas Tortoise, y así sucesivamente.