Jak powiązać rozszerzenie pliku .exe z programem w systemie Windows?

16

Kilka lat temu widziałem, jak ktoś wyśmiewa kogoś, łącząc .exerozszerzenie pliku z Internet Explorerem. Dzięki temu program Internet Explorer otwierał się za każdym razem, gdy osoba chciała uruchomić program.

Niestety zapomniałem, jak to się stało. Próbowałem użyć Default Programs > Set Associationsnarzędzia Panelu sterowania, ale nie było go na liście .exe.

Jak ustawić to powiązanie plików i, co ważniejsze, jak je rozbroić?

Peter Olson
źródło
jest w wyszukiwaniu Google w poszukiwaniu wirusów wsadowych
RobotHumans

Odpowiedzi:

20

Podczas robienia takich „psikusów” nie wystarczy po prostu wykonać samouczek krok po kroku lub skrypt wsadowy; najlepiej wiedzieć coś o tym, jak przechowywane są rzeczywiste dane - później łatwiej będzie je odzyskać.

Wszystkie skojarzenia plików są przechowywane w rejestrze, który można edytować za pomocą regedit lub reg . Powłoka szuka ich pod HKEY_CLASSES_ROOT, który jest połączonym widokiem HKEY_LOCAL_MACHINE\Software\Classes(całego systemu) i HKEY_CURRENT_USER\Software\Classes(lokalnego użytkownika).

  • [ HKEY_CLASS_ROOT]
    • [ .txt]
      • (domyślnie) = " txtfile" - wskaźnik do innego klucza pod HKCR
    • [ txtfile]
      • (domyślnie) = " Text Document" - opis tekstowy wyświetlany w Eksploratorze
      • [ shell] - działania, które należy zastosować w celu dwukrotnego kliknięcia i menu kontekstowego
        • (domyślnie) = (nieustawione) - akcja do użycia po podwójnym kliknięciu; domyślnie „ open
        • [ open]
          • (domyślnie) = (nieustawione) - etykieta wyświetlana w menu kontekstowym; domyślnie „ Open
          • [ command]
            • (domyślnie) = „ %SystemRoot%\system32\NOTEPAD.EXE %1

W przypadku większości rozszerzeń wartość wskazuje klucz typu pliku pod tym samym kodem HKCR; na przykład wskazuje na .HKCR\.extn\(Default).exeHKCR\exefile

(Jednak w rzadkich przypadkach wszystkie informacje znajdują się bezpośrednio pod kluczem rozszerzenia, wraz z opisem. Wydają się jednak bardzo rzadkie - być może resztki systemu Windows 9x lub 3.x ...)HKCR\.extn\(Default)

Twórz kopie zapasowe. reg save HKLM\Software\Classes hklm-classes.hivPamiętaj również, że wiersz polecenia nie dba o rozszerzenia; jeśli spróbujesz uruchomić program wykonywalny, zawsze będzie on działał bez względu na to, jak zostanie nazwany lub z jakim rozszerzeniem jest skojarzony.

użytkownik1686
źródło
1
Oczywiście wyeksportuj rejestr przed wykonaniem jakichkolwiek takich zmian! :)
HaydnWVN
@HaydnWVN: reg savezajmuje się tym (obejmuje również metadane, które reg exportpomijałyby).
user1686,
Ach, przepraszam, odpowiedziałem przed opublikowaniem edycji Utwórz kopie zapasowe ! ;)
HaydnWVN
1
Nie zapominaj, że przeglądanie surowego rejestru jest nieco trudnym sposobem na zrobienie czegoś tutaj. Dołączony interpreter poleceń firmy Microsoft ma FTYPEi ASSOCpolecenia, a lista typów plików jest również dostępna bezpośrednio w oknach dialogowych w Eksploratorze Windows .
JdeBP,
@JdeBP: AFAIK, Windows Vista pozbył się edytora w Eksploratorze - teraz wybiera tylko domyślną akcję. (Nie zagłębiłem się jednak głębiej; nadal używam XP). Również grafika regeditdaje ładny przegląd.
user1686,
2

Spróbuj tego:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"

[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"
kinokijuf
źródło