2009-10-12 12 views
7

Obtengo cómo hacerlo, y he estado en http://www.codeproject.com/KB/vb/VBFileAssociation.aspx antes. Mi pregunta es qué hace eso, ¿es posible revertirlo? ¿Qué sucede si no sabe dónde estará su programa y lo está probando por ahora? ¿Hay alguna forma de que "encuentre" su programa, o una manera fácil de editar dónde se abre? En ese caso, ¿es posible saber si el archivo ya se ha asociado, es un problema intentar y reasociar? Finalmente, ¿cómo puede configurar el archivo .ico que utiliza?Asociando extensiones de archivos con un programa

Gracias por la ayuda, no sé casi nada sobre el registro y me confunde ... lol

Respuesta

17

Por razones de brevedad, estoy usando una clave raíz falsa. En la práctica, reemplace Hive_Key con HKEY_LOCAL_MACHINE para la configuración predeterminada del sistema, o HKEY_CURRENT_USER para configuraciones por usuario. Cualquiera de estas claves puede existir, o ambas. Si ambos existen, la clave HKCU tiene prioridad.

Para asociar una extensión con un tipo de archivo, debe establecer el valor predeterminado de la clave de extensión (Hive_Key\Software\Classes\.ext) con un tipo de archivo elegido, configurando el valor de la clave predeterminada.

El programa real lanzado, así como otros detalles del tipo de archivo, se encuentran en el tipo de archivo. Los tipos de archivos se identifican con lo que se conoce como ProgID (abreviación de "Identificador programático", que es una versión más fácil de leer de un Identificador de clase). Las claves ProgID se encuentran en Hive_Key\Software\Classes, y un valor de ejemplo para esta ilustración podría ser ext_auto_key.

El ProgID puede tener un valor predeterminado, que será la descripción descriptiva del tipo de archivo en el Explorador (como, por ejemplo, "Documento de Microsoft Word"). Depende de usted asegurarse de elegir una descripción que sea fácilmente comprensible para los usuarios.

El ProgID puede tener una subclave, DefaultIcon, que es donde se almacena el icono de tipo de archivo. Esa ruta de icono es el valor predeterminado de esa clave.

La clave de ProgID puede ser una subclave, shell, que contendrá los elementos del menú contextual en los archivos y el programa que invocará ese elemento del menú contextual. De forma similar al valor predeterminado de ProgID, el valor predeterminado de la clave del verbo es el texto que aparecerá en el menú contextual. El valor predeterminado de esta clave shell tiene el nombre predeterminado de la clave del verbo, que es el verbo invocado cuando el usuario hace doble clic en un archivo.

Estos elementos del menú contextual son Verbs. Para nuestro ejemplo, un verbo que abre el archivo con el Bloc de notas se vería así: Hive_Key\Software\Classes\ext_auto_file\shell\open\command con el valor predeterminado notepad.exe %1.

Aquí es donde colocaría la ruta de su programa. Si su programa está en el sistema PATH, como es notepad.exe, no necesita para especificar la ruta completa. En el caso más probable, necesitaría especificar la ruta a su exe. Para fines de prueba, puede configurarlo para que sea su directorio de compilación.

Se preguntó cómo comprobar estas cosas, y esto se puede hacer mediante la inspección primero el valor predeterminado de la clave de extensión para obtener el identificador de programa, a continuación, la inspección de la shell subclave de la clave ProgID para obtener verbo defecto, entonces la inspección \shell\verb\command a obtener el camino al programa lanzado.

Puede ser esclarecedor abrir regedit.exe y examinar las claves de registro para otros tipos de archivos para tener una mejor idea de cómo funciona todo.

Además, todo lo anterior es válido si la extensión particular no está bajo control de un programa configurado como predeterminado (Programas predeterminados) en el Panel de control. Puede verificar este estado comprobando la existencia de la clave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice. Si es así, deberá revocar el control de Programas predeterminados antes de que las personalizaciones entren en vigencia. Esto se puede hacer eliminando esa subclave UserChoice.

+0

Regedit me asusta un poco jajaja. ¡Gracias por la ayuda! – Cyclone

Cuestiones relacionadas