¿Qué determina el icono para las entradas en el menú contextual Nuevo?

20

No estoy completamente seguro de cómo funciona esto. Entonces puedo agregar elementos al menú contextual "nuevo" (que aparece al hacer clic derecho o presionar el botón de menú) a través del editor de registro. Por ejemplo, si quiero crear una nueva entrada de archivo .cpp, puedo importar un archivo .reg que tenga este aspecto:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.cpp]
@="cpp"
[HKEY_CLASSES_ROOT\.cpp\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\cpp]
@="C++ File"

Entonces puedo configurar la extensión y la descripción que aparece con este método. Sin embargo, no estoy seguro de cómo se decide el icono que aparece junto a mi descripción. Esto es lo que quiero decir:

ingrese la descripción de la imagen aquí

No estoy seguro de si Windows elige esta imagen automáticamente según el programa que configuré como predeterminado para esa extensión o si de alguna manera se puede configurar manualmente en el registro.

¿Se puede configurar este icono manualmente?

jippyjoe4
fuente
2
Siempre vale la pena ver este video para tales hackers
channel9.msdn.com/Shows/Defrag-Tools/…

Respuestas:

22

De manera predeterminada, Explorer usará el ícono establecido por el tipo de archivo, pero esto se puede anular colocando un IconPathvalor en la ShellNewclave. Lo descubrí usando Process Monitor para observar la actividad del Registro explorer.exe.

Parece que las entradas existentes de Windows usan el REG_EXPAND_SZtipo de datos, pero REG_SZfunciona igual de bien y es mucho más fácil de incluir en un archivo REG. El formato es la ruta completa al archivo que contiene el icono, luego una coma, luego el número del recurso del icono dentro del archivo. En esta captura de pantalla, utilicé %ProgramFiles%\Windows Mail\wab.exe,10:

ShellNuevas entradas

Como puede ver, esto no afecta el icono del archivo fuera de la lista Nueva:

el ícono del archivo es diferente del ícono Nuevo

Para incluir ese cambio en su archivo REG, agregue esta línea justo debajo de la siguiente "NullFile"="":

"IconPath"="%ProgramFiles%\\Windows Mail\\wab.exe,10"

Deberá reiniciar Explorer para que el cambio surta efecto.

Ben N
fuente
1
Me sorprende que REG_SZfuncione con variables de entorno. Posiblemente Explorer lo expande nuevamente.
Bob
@Bob Excepto por la conversión del juego de caracteres para las funciones A, el tipo de valor no cambia el comportamiento de RegQueryValueEx. .NET Framework realizará la expansión de REG_EXPAND_SZvalores de forma predeterminada, pero la API de Windows subyacente no lo hace.
Ben N
4

¿Se puede configurar este icono manualmente?

Sí, con el Administrador de tipos de archivo de NirSoft :

Acerca del administrador de tipos de archivo

FileTypesMan es una alternativa a la pestaña 'Tipos de archivo' en las 'Opciones de carpeta' de Windows. Muestra la lista de todas las extensiones y tipos de archivos registrados en su computadora. Para cada tipo de archivo, se muestra la siguiente información: Nombre del tipo, Descripción, Tipo MIME, Tipo percibido, Banderas, Banderas del navegador y más. FileTypesMan también le permite editar fácilmente las propiedades y marcas de cada tipo de archivo, así como también le permite agregar, editar y eliminar acciones en un tipo de archivo.

Requisitos del sistema

Esta utilidad funciona en cualquier versión de Windows desde Windows 98 a Windows 10. Para usar esta utilidad en Windows 98 / ME, debe descargar la versión no Unicode. Para usar esta utilidad en el sistema x64, debe descargar la versión x64.

Source FileTypesMan - Alternativa al administrador de 'Tipos de archivos' de Windows


Instrucciones detalladas

Lo primero que deberá hacer es descargar una copia del Administrador de tipos de archivos. Funciona en casi cualquier versión de Windows, pero preste atención a si necesita la versión de 32 o 64 bits. Si no está seguro, a continuación se explica cómo averiguar si está ejecutando una versión de Windows de 32 bits o de 64 bits.

Cuando finalice la descarga, descomprima la carpeta. Es una aplicación portátil, por lo que no necesitará instalarla; simplemente haga doble clic en "FileTypesMan.exe" para comenzar.

fte_1

Haga clic en el encabezado de la columna "Icono predeterminado" para ordenar la lista por el Icono predeterminado. Tenga en cuenta que para nuestra captura de pantalla, ocultamos varias columnas para que las cosas sean más fáciles de ver. Puede encontrar la columna "Icono predeterminado" más a la derecha. Esto agrupa todas las extensiones de archivo que ya tienen el mismo icono. Esto es conveniente si desea cambiar varios tipos de archivos relacionados que usan el mismo icono. Si solo tiene la intención de cambiar un tipo de archivo, no dude en ordenar por la extensión o el nombre del tipo.

fte_2

Para guardar algo de desplazamiento, utilizaremos la función de búsqueda para llegar al tipo de archivo que buscamos. Haga clic en el botón "Buscar" en la barra de herramientas (o presione Ctrl + F). En la ventana "Buscar", escriba la extensión para el tipo de archivo que desea cambiar y luego haga clic en el botón "Buscar siguiente" varias veces hasta que llegue a la extensión que busca. Luego puede hacer clic en "Cancelar" para cerrar la ventana "Buscar".

fte_3

Haga clic con el botón derecho en la extensión cuyo icono desea cambiar y luego seleccione "Editar tipo de archivo seleccionado".

fte_4

En la ventana "Editar tipo de archivo", haga clic en el botón "..." a la derecha del campo de texto Icono predeterminado.

fte_5

La ventana "Cambiar icono" muestra algunos iconos básicos, pero haga clic en el botón "Examinar" para buscar sus propios archivos de iconos. El Administrador de tipos de archivos le permite seleccionar archivos EXE, DLL o ICO.

fte_6

Después de buscar y seleccionar el archivo de icono que desea, los iconos disponibles aparecerán en la lista. Seleccione el icono que desee de la lista y luego haga clic en "Aceptar". En este ejemplo, estamos usando archivos de iconos que descargamos de IconArchive, por lo que solo se muestra un icono. Si está utilizando un archivo EXE o DLL, es posible que vea muchos más iconos que con un archivo ICO.

fte_7

Si necesita cambiar el icono para más de un tipo de archivo, solo necesita repetir esos pasos. Y cuando haya terminado, puede cerrar el Administrador de tipo de archivo y abrir una ventana del Explorador de archivos para ver sus cambios. En nuestro ejemplo, hemos cambiado los íconos para los tipos de archivo GIF y PNG, dos tipos de archivos de imágenes que usamos mucho, para que sean un poco más fáciles de distinguir. Antes, todos los archivos de imágenes usaban el mismo ícono, el ícono predeterminado de nuestra aplicación de visor de imágenes.

fte_8

Fuente Cómo cambiar el icono de un determinado tipo de archivo en Windows


Renuncia

No estoy afiliado a NirSoft de ninguna manera, solo soy un usuario final de su software.

DavidPostill
fuente
Tenga en cuenta que esto cambia el icono del tipo de archivo en todo el sistema. Sin embargo, este es un programa útil.
MoonRunestar
0

Para el registro: se debe agregar una línea en blanco después de la primera línea ("Windows Registry Editor Version 5.00") de un archivo * .reg, o arrojará un error cuando se ejecute. Ver: https://support.microsoft.com/en-us/help/310516/how-to-add-modify-or-delete-registry-subkeys-and-values-by-using-a-reg#syntax para Detalles de sintaxis.

Por cierto, esto no es realmente una respuesta a la pregunta, pero al ser nuevo aquí no se me permite comentar. Pero los moderadores @robinCTS y @bertieb sugieren que también se puede enviar como respuesta, así que aquí voy. ¿Quizás uno de estos moderadores puede moverlo a la zona de comentarios de la pregunta (y al mismo tiempo editar este par)? ¡Gracias!

WinMike
fuente