Verbos y asociaciones de archivos
Cuando un usuario hace clic con el botón derecho en un objeto Shell como un archivo, el Shell muestra un menú contextual (contextual). Este menú contiene una lista de comandos que el usuario puede seleccionar para realizar diversas acciones en el elemento. Estos comandos también se conocen como elementos de menú contextual o verbos. Los menús contextuales se pueden personalizar.
Este tema se organiza de la siguiente manera:
- Introducción a los menús contextuales de objetos del sistema de archivos
- verbos del menú contextual
- transmitir elementos del sistema que no son archivos y resultados de OpenSearch.
- registrar una aplicación para controlar tipos de archivo arbitrarios
- recursos adicionales
- temas relacionados
Introducción a los menús contextuales para objetos del sistema de archivos
Dado que a menudo se usan menús contextuales para la administración de archivos, shell proporciona un conjunto de comandos predeterminados, como Cortar y Copiar, que aparecen en el menú contextual de cualquier objeto del sistema de archivos, como un archivo o una carpeta.
En el ejemplo siguiente se muestra un menú contextual predeterminado que se muestra haciendo clic con el botón derecho en MyFile.xyz-ms.
La razón por la que aparece un menú contextual predeterminado para MyFile.xyz-ms se debe al hecho de que .xyz-ms no es miembro de un tipo de archivo registrado. En cambio, .txt es un tipo de archivo registrado. Si hace clic con el botón derecho en un archivo de .txt, verá un menú contextual con tres comandos adicionales en su sección superior: Imprimir, Editar y Abrir con.
Para ampliar el menú contextual de un tipo de archivo, debe crear una entrada del Registro para cada comando. Un enfoque más sofisticado es implementar un controlador de menú contextual (verbo), que permite ampliar el menú contextual de un tipo de archivo por archivo. Para obtener más información, vea Crear controladores de menú contextualy referencia de menú contextual.
Agregar comandos a un menú contextual
Un controlador de menú contextual es un controlador de tipo de archivo que agrega comandos a un menú contextual existente. Los controladores de menú contextual están asociados a un tipo de archivo y se llaman cada vez que se muestra un menú contextual para un miembro de la clase . Shell comprueba el registro para ver si el tipo de archivo está asociado a cualquier controlador de menú contextual. Si es así, shell consulta los controladores para obtener elementos de menú contextual adicionales.
Verbos del menú contextual
Cada comando del menú contextual se identifica en el Registro por su verbo. Estos verbos son los mismos que los usados por ShellExex al iniciar aplicaciones mediante programación.
Un verbo es una cadena de texto simple que usa shell para identificar el comando asociado. Cada verbo corresponde a la cadena de comandos utilizada para iniciar el comando en una ventana de consola o un archivo por lotes (.bat).
Por ejemplo, el verbo abierto normalmente inicia un programa para abrir un archivo. Normalmente, la cadena de comandos tiene el siguiente aspecto:
"My Program.exe" "%1"
Si algún elemento de la cadena de comandos contiene o puede contener espacios, debe incluirse entre comillas. De lo contrario, si el elemento contiene un espacio, no se analizará correctamente. Por ejemplo, "Mi Program.exe" inicia correctamente la aplicación. Si usa Mi Program.exe sin comillas, el sistema intenta iniciar Mi con Program.exe como primer argumento de línea de comandos. Siempre debe usar comillas con argumentos como "%1" que se expanden a cadenas mediante Shell, ya que no puede estar seguro de que la cadena no contendrá un espacio.
Los verbos también pueden tener un nombre para mostrar asociado, que se muestra en el menú contextual en lugar de la propia cadena de verbo. Por ejemplo, la cadena para mostrar de openas se Abrir con. Al igual que las cadenas de menú normales, incluido un carácter de y comercial en la cadena de presentación permite la selección del teclado del comando.
Transmitir elementos del sistema que no son archivos y resultados de OpenSearch.
En Windows 7 y versiones posteriores, hay compatibilidad con la conexión de orígenes externos al cliente de Windows a través del protocolo OpenSearch. Esto permite a los usuarios buscar en un almacén de datos remoto y ver los resultados desde el Explorador de Windows. El estándar OpenSearch v1.1 define formatos de archivo simples que se pueden usar para describir cómo un cliente debe consultar el servicio web para el almacén de datos y cómo el servicio debe devolver los resultados que el cliente debe representar.
Es posible que tenga que transmitir elementos del sistema que no son de archivos para evitar la necesidad de descargar elementos en el caso de resultados de OpenSearch. La característica de búsqueda federada permite buscar elementos desde ubicaciones que no son del sistema de archivos que admiten OpenSearch, como SharePoint y otros sitios respaldados por servicios web, por ejemplo. Al invocar verbos en estos elementos, el sistema descarga una versión temporal del elemento y la pasa a la implementación del verbo. Se recomienda que los implementadores de verbos eviten la necesidad de descargar el archivo registrando el conjunto de esquemas de dirección URL que admite el verbo para transmitir los elementos. Los verbos lo hacen con la clave del Registro SupportedProtocols.
Registro de una aplicación para controlar tipos de archivo arbitrarios
Definir elementos de menú contextual para un tipo de archivo determinado le permite especificar cómo abre la aplicación asociada un miembro del tipo de archivo. Sin embargo, las aplicaciones también pueden registrar un procedimiento predeterminado independiente que se usará cuando un usuario intenta usar la aplicación para abrir un tipo de archivo que no está asociado a la aplicación. Registra el procedimiento predeterminado de la misma manera que registra los elementos del menú contextual. Para obtener información más detallada sobre cómo definir elementos de menú contextual, vea Crear controladores de menú contextual.
El procedimiento predeterminado sirve para dos propósitos básicos. Uno es especificar cómo se debe invocar la aplicación para abrir un tipo de archivo arbitrario. Por ejemplo, podría usar una marca de línea de comandos para indicar que se abre un tipo de archivo desconocido. El otro propósito es definir las diversas características de un tipo de archivo, como los elementos de menú contextual y el icono. Si un usuario asocia la aplicación a un tipo de archivo adicional, esa clase tendrá estas características. Si el tipo de archivo adicional estaba asociado anteriormente a otra aplicación, estas características reemplazarán los originales.
Para registrar el procedimiento predeterminado, coloque las mismas claves del Registro que creó para el ProgID de la aplicación en la subclave de la aplicación de HKEY_CLASSES_ROOT\Applications. También puede incluir un valor de FriendlyAppName para proporcionar al sistema un nombre descriptivo para la aplicación. El nombre descriptivo de la aplicación también se puede extraer de su archivo ejecutable, pero solo si el valor FriendlyAppName está ausente.
La siguiente entrada del Registro de ejemplo muestra un procedimiento predeterminado para MyProgram.exe que define un nombre descriptivo y varios elementos de menú contextual. Las cadenas de comandos incluyen la marca de /a para notificar a la aplicación que está abriendo un tipo de archivo arbitrario. Si incluye una subclave DefaultIcon, debe usar un icono genérico.
HKEY_CLASSES_ROOT
MyProgram.exe
shell
open
command
(Default) = C:\MyDir\MyProgram.exe /a "%1"
print
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1"
printto
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"
Recursos adicionales
- Para obtener información adicional, consulte Introducción a las asociaciones de archivos.
- Para obtener información conceptual sobre cómo extender shell con controladores de tipo de archivo, consulte Creating Shell Extension Handlers.
Temas relacionados