Eliminar la asociación de archivos de Windows usando el archivo .reg

12

Pregunta: Utilizando un archivo .reg, ¿cómo elimino completamente una asociación de tipo de archivo? Intenté, por ejemplo, eliminar, HKEY_CLASSES_ROOT\myextension_auto_filepero aparentemente eso no es suficiente.

Antecedentes: en Windows Vista, tengo un archivo .reg que asocia con éxito un tipo de archivo con otra aplicación que siempre necesita que se pasen algunos parámetros (por lo que no basta con hacer clic con el botón derecho; consulte el archivo .reg ). Sin embargo, como el archivo .reg por alguna razón solo funciona con extensiones de archivo previamente no asociadas, estoy buscando agregarle algunos comandos para eliminar primero una asociación de tipo de archivo dada.

Philipp Lenssen
fuente

Respuestas:

18

Veo que estás escribiendo HKEY_CLASSES_ROOTcon ese archivo de registro en la pregunta. Esta colmena es una vista fusionada de HKEY_LOCAL_MACHINE\Software\Classesy HKEY_CURRENT_USER\Software\Classes.

La razón por la que su archivo solo funciona para archivos previamente no asociados es que escribe para HKEY_CLASSES_ROOT redirigir a la clave adecuada HKEY_LOCAL_MACHINE(la sección para los valores predeterminados del sistema y la configuración de todos los usuarios). Sin embargo, se encontrará con un problema porque la configuración de asociación de archivos en HKEY_CURRENT_USER(que contiene la configuración por usuario) anula los valores predeterminados del sistema.

Además, si la extensión está controlada por una asociación de "programas predeterminados", su información de asociación de archivos se almacena en HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>. Puede verificar si su extensión tiene esta asociación al verificar la existencia de esa clave.

Puede editar su .reg para que funcione para cualquier archivo, incluidos los archivos asociados anteriormente, duplicándolo para esas claves en ambos HKEY_LOCAL_MACHINE y HKEY_CURRENT_USER. Del mismo modo, puede eliminar la asociación eliminando las claves apropiadas en ambas colmenas (incluida la FileExtsubicación).

Un archivo .reg en funcionamiento para eliminar una asociación para una extensión particular se ve así (lo que elimina las .blergasociaciones):

Windows Registry Editor Version 5.00

; Created with Default Programs Editor
; http://defaultprogramseditor.com/

; Delete Extension
[-HKEY_LOCAL_MACHINE\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.blerg]

Sin embargo , si prefiere no tener que educarse en aspectos internos del registro y los diversos aspectos arcanos de la asociación de archivos de Windows, le recomiendo que use el Editor de programas predeterminados para realizar estos cambios, incluso puede exportar una acción a un archivo .reg, que parece adaptarse perfectamente a sus necesidades.

El editor de programas predeterminado elimina la extensión y la guarda como archivo .reg

En su caso, es tan simple como hacer clic File Type Settings, entonces Delete an extension. Seleccione la extensión y, en lugar de guardar en el registro, presione la flecha pequeña en el Delete Extensionbotón y haga clic Save to .reg file.... Esto producirá un archivo .reg completo y comentado de esta acción que puede guardar o distribuir a otras máquinas.

Factor místico
fuente
1
Qué respuesta tan fantástica y bien explicada. Gracias Factor Mystic, ¡esto funciona de maravilla!
Philipp Lenssen
1
+1 para el Editor de programas predeterminados. Mencionado en varias respuestas, pero lo encontré aquí primero. Mucho más simple, y aunque es una utilidad para instalar, está muy enfocado en su trabajo.
goodeye
3

Esta pregunta parece tener muchos supuestos cuestionables.

Primero, ¿por qué quieres usar un archivo .reg para eliminar la asociación de archivos? ¿Por qué no hacerlo desde la interfaz de usuario? ¿Estás haciendo esto en muchas estaciones de trabajo?

En segundo lugar, no veo por qué el archivo .reg al que se vinculó solo funcionaría con extensiones de archivo previamente no asociadas.

De todos modos, para eliminar una clave usando un archivo .reg, se antepone un guión al nombre de la clave. Para eliminar un valor, configúrelo en signo de guión. Todo se explica aquí .

Para eliminar una asociación de archivos, debe eliminar la clave de la extensión del archivo, p. Ej.

[-HKEY_CLASSES_ROOT\.dat]

Esto solo evitaría que se abriera el archivo, pero para completar, también debe eliminar la clave para el nombre del tipo, que era el valor predeterminado debajo de la clave de extensión del archivo. Ejemplo:

[-HKEY_CLASSES_ROOT\dat_auto_file]
itsadok
fuente
Gracias Itsadok Sí, idealmente estoy buscando hacerlo a través de un archivo .reg porque podría querer distribuir el resultado (que es un editor de texto basado en el acceso directo de la aplicación de Chrome / Ajax que se ejecuta en localhost + el servidor). Para su información, su solución parece dejar algunos rastros de la asociación, pero Factor Mystic lo resolvió.
Philipp Lenssen