Leer en inglés

Compartir a través de


Trabajar con extensiones de Shell

Las funcionalidades del Shell se pueden ampliar con entradas del Registro y archivos .ini. Aunque este enfoque para extender el shell es sencillo y adecuado para muchos propósitos, es limitado. Por ejemplo, si usa el Registro para especificar un icono personalizado para un tipo de archivo, aparecerá el mismo icono para cada archivo de ese tipo. La extensión del shell con el registro no permite variar el icono de los distintos miembros del tipo de archivo. Otros aspectos del Shell, como la hoja de propiedades Propiedades que se puede mostrar cuando se hace clic con el botón derecho en un archivo, no se pueden modificar en absoluto con el Registro.

Un enfoque más eficaz y flexible para extender el shell es implementar controladores de extensión de shell. Estos controladores se pueden implementar para una variedad de acciones que el Shell puede realizar. Antes de realizar la acción, el Shell consulta el controlador de extensión, lo que le da la oportunidad de modificar la acción. Un ejemplo común es un controlador de extensión de menú contextual. Si se implementa uno para un tipo de archivo, se consultará cada vez que se haga clic con el botón derecho en uno de los archivos. Después, el controlador puede especificar elementos de menú adicionales por archivo, en lugar de tener el mismo conjunto para todos los archivos de ese tipo de archivo.

En este conjunto de temas se describe cómo implementar los controladores de extensión que permiten modificar una variedad de acciones de Shell. Los siguientes controladores están asociados a un tipo de archivo determinado y permiten especificarlo por archivo.

Controlador Descripción
Controlador de menú contextual Se llama antes de que se muestre el menú contextual de un archivo. Permite agregar elementos al menú contextual en un archivo por archivo.
Controlador de datos Se llama cuando se realiza una operación de arrastrar y colocar en objetos shell. Permite proporcionar formatos adicionales del Portapapeles al destino de colocación.
Controlador de colocación Se llama cuando se arrastra o quita un objeto de datos en un archivo. Permite convertir un archivo en un destino de colocación.
Controlador de iconos Se llama antes de que se muestre el icono de un archivo. Permite reemplazar el icono predeterminado del archivo por un icono personalizado por archivo.
Controlador de la hoja de propiedades Se llama antes de que se muestre la hoja de propiedades Propiedades de un objeto. Permite agregar o reemplazar páginas.
Controlador de imágenes en miniatura Proporciona una imagen para representar el elemento.
Controlador de recuadro informativo Proporciona texto emergente cuando el usuario mantiene el puntero del mouse sobre el objeto.
Controlador de metadatos Proporciona acceso de lectura y escritura a los metadatos (propiedades) almacenados en un archivo. Se puede usar para ampliar la vista Detalles, la información sobre información, la página de propiedades y las características de agrupación.

 

Otros no están asociados a un tipo de archivo determinado, pero se llaman antes de algunas operaciones de Shell.

Controlador Descripción
Controlador de columnas Lo llama el Explorador de Windows antes de mostrar la vista Detalles de una carpeta. Permite agregar columnas personalizadas a la vista Detalles.
Controlador de enlace de copia Se llama cuando se va a mover, copiar, eliminar o cambiar el nombre de un objeto de carpeta o impresora. Le permite aprobar o vetar la operación.
Controlador de arrastrar y colocar Se llama cuando se arrastra un archivo con el botón derecho del mouse. Permite modificar el menú contextual que se muestra.
Controlador de superposición de iconos Se llama antes de que se muestre el icono de un archivo. Permite especificar una superposición para el icono del archivo.
Controlador de búsqueda Se llama para iniciar un motor de búsqueda. Permite implementar un motor de búsqueda personalizado accesible desde el menú Inicio o el Explorador de Windows.

 

Los detalles de cómo implementar controladores de extensión específicos se tratan en las secciones enumeradas anteriormente. Para ver los debates sobre los problemas de implementación comunes a todos los controladores de extensión de Shell, consulte estos temas: