Usuń skojarzenie pliku Windows za pomocą pliku .reg

12

Pytanie: Jak całkowicie usunąć skojarzenie typu pliku za pomocą pliku .reg? Próbowałem np. Usunąć, HKEY_CLASSES_ROOT\myextension_auto_fileale najwyraźniej to nie wystarczy.

Tło: W systemie Windows Vista mam plik .reg, który z powodzeniem kojarzy typ pliku z inną aplikacją, która zawsze wymaga podania pewnych parametrów (dlatego właśnie nie wystarczyło skojarzenie prawym przyciskiem myszy; patrz plik .reg ). Ponieważ jednak plik .reg z jakiegoś powodu działa tylko z wcześniej niepowiązanymi rozszerzeniami plików, chcę dodać do niego kilka poleceń, aby najpierw usunąć skojarzenie danego typu pliku.

Philipp Lenssen
źródło

Odpowiedzi:

18

Widzę, że piszesz do HKEY_CLASSES_ROOTtego pliku reg w pytaniu. Ten ul jest połączonym widokiem HKEY_LOCAL_MACHINE\Software\Classesi HKEY_CURRENT_USER\Software\Classes.

Powodem, dla którego twój plik działa tylko w przypadku wcześniej niepowiązanych plików, jest to, że pisze w celu HKEY_CLASSES_ROOT przekierowania do odpowiedniego klucza w HKEY_LOCAL_MACHINE(gałęzi dla domyślnych ustawień systemu i ustawień wszystkich użytkowników). Wystąpi jednak problem, ponieważ ustawienia powiązania plików w HKEY_CURRENT_USER(które zawierają ustawienia poszczególnych użytkowników) zastępują ustawienia domyślne systemu.

Ponadto, jeśli rozszerzenie jest kontrolowane przez powiązanie z „domyślnymi programami”, informacje o powiązaniu pliku są przechowywane w HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>. Możesz sprawdzić, czy twoje rozszerzenie ma to powiązanie, sprawdzając istnienie tego klucza.

Możesz edytować plik .reg, aby działał dla dowolnego pliku, w tym wcześniej skojarzonych plików, kopiując go dla tych kluczy zarówno w, jakHKEY_LOCAL_MACHINE i w HKEY_CURRENT_USER. Podobnie możesz usunąć powiązanie, usuwając odpowiednie klucze w obu ulach (w tym w FileExtslokalizacji).

Działający plik .reg do usuwania powiązania dla określonego rozszerzenia wygląda następująco (co usuwa .blergprzypisania):

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]

Jeśli jednak nie chcesz się uczyć na temat wewnętrznych elementów rejestru i różnych tajemnych aspektów skojarzenia plików Windows, zalecam skorzystanie z Edytora programów domyślnych, aby wprowadzić te zmiany - możesz nawet wyeksportować akcję do plik .reg, który wydaje się idealnie pasować do twoich potrzeb.

Domyślny edytor programów usuwa rozszerzenie i zapisuje jako plik .reg

W twoim przypadku, to tak proste, jak kliknięcie File Type Settings, a następnie Delete an extension. Wybierz rozszerzenie i zamiast zapisywać w rejestrze, naciśnij małą strzałkę na Delete Extensionprzycisku i kliknij Save to .reg file.... Spowoduje to utworzenie pełnego i skomentowanego pliku .reg tej akcji, który można zapisać lub rozpowszechnić na innych komputerach.

Factor Mystic
źródło
1
Co za wspaniała, dobrze wyjaśniona odpowiedź. Dziękuję Factor Mystic - to działa jak urok!
Philipp Lenssen
1
+1 dla domyślnego edytora programów. Wspomniano w kilku odpowiedziach, ale znalazłem to tutaj jako pierwsze. Znacznie prostsze i chociaż jest to narzędzie do zainstalowania, jest bardzo skoncentrowane na swojej pracy.
goodeye,
3

To pytanie wydaje się mieć wiele założeń, które są wątpliwe.

Po pierwsze, dlaczego chcesz użyć pliku .reg, aby usunąć skojarzenie pliku? Dlaczego nie zrobić tego po prostu z interfejsu użytkownika? Czy robisz to na wielu stacjach roboczych?

Po drugie, nie rozumiem, dlaczego plik .reg, z którym masz połączenie, działa tylko z wcześniej niepowiązanymi rozszerzeniami plików.

W każdym razie, aby usunąć klucz za pomocą pliku .reg, należy poprzedzić myślnik nazwą klucza. Aby usunąć wartość, ustaw ją na znak łącznika. Wszystko to przeliterowano tutaj .

Aby usunąć powiązanie pliku, musisz usunąć klucz do rozszerzenia pliku, np

[-HKEY_CLASSES_ROOT\.dat]

Samo to uniemożliwiłoby otwarcie pliku, ale dla kompletności należy również usunąć klucz dla nazwy typu, który był wartością domyślną w kluczu rozszerzenia pliku. Przykład:

[-HKEY_CLASSES_ROOT\dat_auto_file]
itsadok
źródło
Dziękuję Itsadok. Tak, idealnie zamierzam to zrobić za pomocą pliku .reg, ponieważ mógłbym chcieć rozpowszechnić wynik (który jest edytorem tekstowym opartym na skrócie aplikacji / Ajax działającym na localhost + serwer). Dla twojego rozwiązania wydaje się, że pozostawia pewne ślady skojarzenia, ale Factor Mystic rozwiązał to.
Philipp Lenssen