windows-xp - quitar - reparar menu contextual windows 7
Agregue el elemento de menú al menú contextual de Windows solo para un tipo de archivo específico (2)
He desarrollado una aplicación que carga una imagen usando el menú contextual de la ventana (clic derecho en el archivo) y por el momento está funcionando, pero la tecla reg está activada
HKEY_CLASSES_ROOT/*
y funciona con todos los archivos.
Quiero que el elemento del menú en el menú contextual se muestre solo con archivos .jpg.
¿Qué puedo hacer? ¿Qué claves de registro debería usar?
Gracias por adelantado.
Hay otra clave en el registro que funciona independientemente de los programas predeterminados del usuario: HKEY_CLASSES_ROOT/SystemFileAssociations
. Como nadie lo mencionó en esta pregunta ... No es necesario verificar ProgID antes de agregar el elemento del menú contextual. Ejemplo:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT/SystemFileAssociations/.mkv/shell/subtitle]
@="Search subtitles..."
[HKEY_CLASSES_ROOT/SystemFileAssociations/.mkv/shell/subtitle/command]
@="/"D://Tools//subsearch.exe/" /"%1/""
Referencia: https://msdn.microsoft.com/en-us/library/windows/desktop/ee872121(v=vs.85).aspx#reg_verbs
1) Identificar el tipo de archivo (ProgID) para archivos .jpg
Esto se puede hacer comprobando el valor predeterminado de HKEY_CLASSES_ROOT/.jpg
. Podría ser cualquier cosa en función de lo que haya instalado, pero a los efectos de este ejemplo, lo llamaremos jpegfile
, un valor predeterminado común.
2) Establecer las propiedades del elemento de menú contextual (verbo) para ese tipo de archivo
Puede establecer elementos del menú contextual por usuario en HKEY_CURRENT_USER/Software/Classes/jpegfile/shell
. Esta clave tiene una lista de verbos para el tipo de archivo. Hay una clave similar en HKEY_LOCAL_MACHINE/Software/Classes/jpegfile/shell
, y estos son los valores predeterminados del sistema para el tipo de archivo. También puede poner una clave de verbo, pero si la misma clave existe en HKCU, se anulará, así que tenga en cuenta.
3) Establecer el valor del comando
El valor mínimo de la clave que debe establecerse para que funcione es el valor predeterminado de la subclave del command
. HKEY_CURRENT_USER/Software/Classes/jpegfile/shell/open_with_myapp/command
configurarlo con la ruta a su aplicación, así: HKEY_CURRENT_USER/Software/Classes/jpegfile/shell/open_with_myapp/command
se establecerá en "c:/path/to/myapp.exe" "%1"
. Ahora, un menú contextual para archivos .jpg tendrá un elemento "abrir_con_myapp" que iniciará su aplicación cuando se haga clic y pasará el nombre del archivo seleccionado como parámetro. Por supuesto, la forma en que la aplicación procesa los parámetros depende de usted, por lo que deberá establecer la cadena de parámetros en algo que su aplicación pueda procesar.
4) Establecer otras propiedades verbales
Me imagino que probablemente quieras que el elemento del menú contextual lea algo un poco más amigable que el nombre de la tecla. Puede hacer que el menú contextual muestre la etiqueta que desee para su elemento estableciendo el valor predeterminado de esa clave ( open_with_myapp
).
Esa es su descripción general básica. Definitivamente verifique mi respuesta a esta pregunta sobre la asociación de un archivo, que tiene una respuesta similar: