Supprimer l'association de fichiers Windows à l'aide du fichier .reg

12

Question: En utilisant un fichier .reg, comment supprimer complètement une association de type de fichier? J'ai par exemple essayé de supprimer HKEY_CLASSES_ROOT\myextension_auto_filemais cela ne suffit apparemment pas.

Contexte: sous Windows Vista, j'ai un fichier .reg qui associe avec succès un type de fichier à une autre application qui a toujours besoin de certains paramètres passés (c'est pourquoi il ne suffit pas de cliquer avec le bouton droit; voir le fichier .reg ). Cependant, comme le fichier .reg, pour une raison quelconque, ne fonctionne qu'avec des extensions de fichier précédemment non associées, je cherche à lui ajouter quelques commandes pour supprimer d'abord une association de type de fichier donnée.

Philipp Lenssen
la source

Réponses:

18

Je vois que vous écrivez HKEY_CLASSES_ROOTavec ce fichier reg dans la question. Cette ruche est une vue fusionnée de HKEY_LOCAL_MACHINE\Software\Classeset HKEY_CURRENT_USER\Software\Classes.

La raison pour laquelle votre fichier ne fonctionne que pour les fichiers précédemment non associés est qu'il écrit pour HKEY_CLASSES_ROOT rediriger vers la clé appropriée HKEY_LOCAL_MACHINE(la ruche pour les valeurs par défaut du système et les paramètres de tous les utilisateurs). Cependant, vous rencontrerez un problème car les paramètres d'association de fichiers dans HKEY_CURRENT_USER(qui contient les paramètres par utilisateur) remplacent les valeurs par défaut du système.

De plus, si l'extension est contrôlée par une association "programmes par défaut", ses informations d'association de fichiers sont stockées dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>. Vous pouvez vérifier si votre extension possède cette association en vérifiant l'existence de cette clé.

Vous pouvez modifier votre .reg au travail pour tous les fichiers, y compris les fichiers précédemment associés, en le dupliquant pour les clés à la fois HKEY_LOCAL_MACHINE et HKEY_CURRENT_USER. De même, vous pouvez supprimer l'association en supprimant les clés appropriées dans les deux ruches (y compris l' FileExtsemplacement).

Un fichier .reg de travail pour supprimer une association pour une extension particulière ressemble à ceci (qui supprime les .blergassociations):

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]

Cependant , si vous préférez ne pas avoir à vous renseigner sur les internes du registre et les divers aspects obscurs de l'association de fichiers Windows, je vous recommande d'utiliser l' éditeur de programmes par défaut pour effectuer ces modifications - vous pouvez même exporter une action vers un fichier .reg, qui semble parfaitement correspondre à vos besoins.

L'éditeur de programmes par défaut supprime l'extension et enregistre en tant que fichier .reg

Dans votre cas, c'est aussi simple que de cliquer File Type Settings, alors Delete an extension. Sélectionnez l'extension et, au lieu d'enregistrer dans le registre, appuyez sur la petite flèche du Delete Extensionbouton, puis cliquez sur Save to .reg file.... Cela produira un fichier .reg complet et commenté de cette action que vous pouvez enregistrer ou distribuer à d'autres machines.

Facteur mystique
la source
1
Quelle réponse formidable et bien expliquée. Merci Factor Mystic - cela fonctionne comme un charme!
Philipp Lenssen
1
+1 pour l'éditeur de programmes par défaut. Mentionné dans plusieurs réponses, mais trouvé ici en premier. Beaucoup plus simple, et même si c'est un utilitaire à installer, il est très concentré sur son travail.
goodeye
3

Cette question semble contenir de nombreuses hypothèses discutables.

Tout d'abord, pourquoi voulez-vous utiliser un fichier .reg pour supprimer l'association de fichiers? Pourquoi ne pas simplement le faire à partir de l'interface utilisateur? Faites-vous cela sur de nombreux postes de travail?

Deuxièmement, je ne vois pas pourquoi le fichier .reg auquel vous avez lié ne fonctionnerait qu'avec des extensions de fichier précédemment non associées.

Quoi qu'il en soit, pour supprimer une clé à l'aide d'un fichier .reg, vous préfixez un trait d'union au nom de la clé. Pour supprimer une valeur, vous la définissez sur trait d'union. Tout est expliqué ici .

Pour supprimer une association de fichiers, vous devez supprimer la clé de l'extension de fichier, par exemple

[-HKEY_CLASSES_ROOT\.dat]

Cela seul empêcherait l'ouverture du fichier, mais pour être complet, vous devez également supprimer la clé du nom de type, qui était la valeur par défaut sous la clé d'extension de fichier. Exemple:

[-HKEY_CLASSES_ROOT\dat_auto_file]
itsadok
la source
Merci Itsadok. Oui, idéalement, je cherche à le faire via un fichier .reg parce que je pourrais vouloir distribuer le résultat (qui est un éditeur de texte basé sur Chrome App Shortcut / Ajax fonctionnant sur localhost + le serveur). Pour votre information, votre solution semble laisser des traces de l'association, mais Factor Mystic l'a résolue.
Philipp Lenssen