¿Cómo puedo agregar un icono a mi elemento de menú contextual personalizado en Windows 7?

9

Relacionado: ¿Cómo puedo agregar un programa al menú contextual de todos los archivos?

He creado mi elemento de menú contextual personalizado, y parece funcionar en todos los tipos de archivos, incluso a través de enlaces de acceso directo. (Al seleccionar mi opción personalizada, se realiza la operación en el objetivo de acceso directo, no en el archivo .lnk). Ahora, me gustaría crear un icono para que se destaque. Parece que mi programa antivirus y Notepad ++ han podido hacer esto, así que sé que es posible. ¿La única pregunta es cómo?

Iszi
fuente

Respuestas:

10

Abra regedit.exe y busque la clave que creó para el elemento de menú personalizado.

Ahora cree un nuevo valor de cadena en él y asígnele un nombre Icon. Haga doble clic en él e ingrese la ruta a su archivo de icono personalizado:

c: \ folder \ icon.ico

Opcionalmente, puede usar el archivo shell32.dll de Windows como en mi ejemplo: Registro

El resultado:

Icono en el menú contextual personalizado

Solo una nota adicional: parece que este método funciona en Windows 7 (y probablemente en Vista) pero el icono no apareció cuando probé en Windows XP.

Siim K
fuente
Gracias por la respuesta y las pruebas en XP. Tendré que intentarlo más tarde hoy. Además, he notado que su método parece diferir un poco de la respuesta a mi pregunta anterior. (Vea el enlace en esta pregunta). En la respuesta anterior, el texto para el elemento del menú contextual se almacena en el nombre de la clave. En el tuyo, se almacena en un valor de cadena dentro de la clave. ¿Hay alguna razón práctica para la diferencia?
Iszi
@Iszi: no estoy seguro de si hay alguna diferencia real. Acabo de encontrar un ejemplo así
Siim K
1
Parece que tienes razón sobre que no funciona en XP. No puedo pensar por qué no lo haría, ya que mi AV y Notepad ++ todavía tienen iconos. Sin HKCR\*\shellex\ContextMenuHandlersembargo, parecen tener sus funciones cubiertas , y no puedo comenzar a descifrar por mi cuenta cómo funcionan esas teclas.
Iszi
Probado y funciona en Windows 7. Seguiré adelante y publicaré XP como otra pregunta.
Iszi
2
@ luochen1990 Es el número de índice, qué icono del .dll se usa. Aquí hay una tabla para shell32.dll con los iconos y los índices correspondientes: help4windows.com/windows_7_shell32_dll.shtml
Siim K
4

... Y si lo desea, puede usar el ícono predeterminado / mismo que su programa (archivo exe) ya está usando.

Simplemente use algo como a continuación como el contenido de su Iconvalor de cadena que @Slim K le indicó en su respuesta:

"C:\Path\to\YourProgram.exe",0

Sublime Text 3 no utiliza un icono para su opción de menú contextual. Entonces agregué un Iconvalor de cadena con el contenido que ves en la captura de pantalla.

1

2

tonto
fuente
¿Qué significa el número '0' que sigue la ruta?
luochen1990
@ luochen1990 como se menciona en la respuesta aceptada por Siim K, es el número de índice del icono en el archivo DLL. En este caso, el número cero es el primer icono en la DLL. Puede leer más sobre este sistema de numeración aquí
Christian Sirolli, el