Elimina l'associazione dei file di Windows usando il file .reg


12

Domanda: utilizzando un file .reg, come posso rimuovere completamente un'associazione di tipi di file? Ho provato ad es. A cancellare, HKEY_CLASSES_ROOT\myextension_auto_filema a quanto pare non è abbastanza.

Sfondo: su Windows Vista, ho un file .reg che associa con successo un tipo di file a un'altra applicazione che necessita sempre di alcuni parametri passati (motivo per cui non è sufficiente associare il tasto destro del mouse; vedere il file .reg ). Tuttavia, poiché il file .reg per qualche motivo funziona solo con estensioni di file precedentemente non associate, sto cercando di aggiungere alcuni comandi per eliminare prima una determinata associazione di tipi di file.

Risposte:


18

Vedo che stai scrivendo HKEY_CLASSES_ROOTcon quel file reg nella domanda. Questo alveare è una visione unita di HKEY_LOCAL_MACHINE\Software\Classese HKEY_CURRENT_USER\Software\Classes.

Il motivo per cui il tuo file funziona solo per file precedentemente non associati è che scrive per HKEY_CLASSES_ROOT reindirizzare alla chiave appropriata HKEY_LOCAL_MACHINE(l'hive per i valori predefiniti del sistema e le impostazioni per tutti gli utenti). Tuttavia, vi imbatterete in un problema perché le impostazioni di associazione di file in HKEY_CURRENT_USER(che contiene le impostazioni per utente) di override impostazioni predefinite del sistema.

Inoltre, se l'estensione è controllata da un'associazione "programmi predefiniti", vengono archiviate le informazioni sull'associazione dei file HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>. Puoi verificare se l'estensione ha questa associazione controllando l'esistenza di quella chiave.

Puoi modificare il tuo .reg in modo che funzioni per qualsiasi file, inclusi i file precedentemente associati, duplicandolo per quelle chiavi in entrambi HKEY_LOCAL_MACHINE e HKEY_CURRENT_USER. Allo stesso modo, è possibile rimuovere l'associazione eliminando le chiavi appropriate in entrambi gli alveari (inclusa la FileExtsposizione).

Un file .reg funzionante per eliminare un'associazione per una particolare estensione è simile al seguente (che elimina le .blergassociazioni):

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]

Tuttavia , se preferisci non doverti istruire sugli interni del registro e sui vari aspetti arcani dell'associazione dei file di Windows, ti consiglio di utilizzare l' Editor di programmi predefinito per apportare queste modifiche, puoi persino esportare un'azione in un file .reg, che sembra adattarsi perfettamente alle tue esigenze.

Editor programmi predefinito elimina l'estensione e salva come file .reg

Nel tuo caso, è semplice come fare clic File Type Settings, quindi Delete an extension. Seleziona l'estensione e invece di salvare nel registro, premi la piccola freccia sul Delete Extensionpulsante e fai clic Save to .reg file.... Questo produrrà un file .reg completo e commentato di questa azione che puoi salvare o distribuire ad altre macchine.


1
Che risposta formidabile e ben spiegata. Grazie Factor Mystic: funziona come un incantesimo!
Philipp Lenssen,

1
+1 per l'editor dei programmi predefiniti. Menzionato in diverse risposte, ma l'ho trovato prima qui. Molto più semplice e anche se è un'utilità da installare, è molto focalizzata sul suo lavoro.
arrivederci,

3

Questa domanda sembra avere molti presupposti che sono discutibili.

Innanzitutto, perché vuoi usare un file .reg per rimuovere l'associazione dei file? Perché non farlo dall'interfaccia utente? Lo stai facendo su molte workstation?

In secondo luogo, non riesco a capire perché il file .reg a cui hai collegato funzionerebbe solo con estensioni di file precedentemente non associate.

Ad ogni modo, per cancellare una chiave usando un file .reg, aggiungi un trattino al nome della chiave. Per rimuovere un valore, lo si imposta su segno trattino. Tutto scritto qui .

Per rimuovere un'associazione di file, è necessario eliminare la chiave per l'estensione del file, ad es

[-HKEY_CLASSES_ROOT\.dat]

Questo da solo impedirebbe l'apertura del file, ma per completezza dovresti anche rimuovere la chiave per il nome del tipo, che era il valore predefinito sotto la chiave di estensione del file. Esempio:

[-HKEY_CLASSES_ROOT\dat_auto_file]

Grazie Itsadok. Sì, idealmente sto cercando di farlo tramite un file .reg perché potrei voler distribuire il risultato (che è un editor di testo Chrome App Shortcut / Ajax basato su localhost + il server). Cordiali saluti, la tua soluzione sembra lasciare alcune tracce dell'associazione, ma Factor Mystic l'ha risolto.
Philipp Lenssen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.