Dla zwięzłości, używam fałszywego klucza głównego. W praktyce zamień Hive_Key
na HKEY_LOCAL_MACHINE
dla domyślnych ustawień systemu lub HKEY_CURRENT_USER
dla ustawień użytkownika. Każdy z tych kluczy może istnieć, lub jedno i drugie. Jeśli oba istnieją, klucz HKCU
ma pierwszeństwo.
Aby skojarzyć rozszerzenie z typem pliku, należy ustawić domyślną wartość klucza rozszerzenia (Hive_Key\Software\Classes\.ext
) dla wybranego typu pliku, ustawiając domyślną wartość klucza.
Rzeczywisty program uruchomiony, a także inne szczegóły dotyczące typów plików znajdują się w pliku tego typu. Typy plików są oznaczone jako ProgID
(skrót od "Programmatic Identifier", który jest łatwiej czytelną wersją Identyfikatora Klasy). Klucze ProgID znajdują się w Hive_Key\Software\Classes
, a przykładową wartością tej ilustracji może być ext_auto_key
.
ProgID może mieć wartość domyślną, która będzie przyjaznym opisem typu pliku w Eksploratorze (np. "Dokument Microsoft Word"). To Ty decydujesz, czy wybierzesz opis, który będzie zrozumiały dla użytkowników.
Identyfikator ProgID może mieć podklucz, DefaultIcon
, w którym przechowywana jest ikona typu pliku. Ta ścieżka ikony jest domyślną wartością tego klucza.
Klucz ProgID może być podkluczem, shell
, który będzie zawierał pozycje menu kontekstowego na plikach oraz program, który zostanie wywołany przez element menu kontekstowego. Podobnie jak w domyślnej wartości ProgID, domyślną wartością klucza czasownika jest tekst, który pojawi się w menu kontekstowym. Domyślna wartość tego klucza shell
ma domyślną nazwę klucza czasownika, która jest czasownikiem wywoływanym, gdy użytkownik dwukrotnie kliknie plik. Ta opcja menu kontekstowego to Verbs
. W naszym przykładzie czasownik otwierający plik w Notatniku będzie wyglądał następująco: Hive_Key\Software\Classes\ext_auto_file\shell\open\command
z domyślną wartością notepad.exe %1
.
Tutaj można umieścić ścieżkę programu. Jeśli twój program znajduje się w ścieżce systemowej, tak jak plik notepad.exe, nie musisz potrzebujesz, aby określić pełną ścieżkę. W bardziej prawdopodobnym przypadku musisz podać ścieżkę do swojego exe. Do celów testowych możesz po prostu ustawić go jako katalog kompilacji.
Pytałeś jak sprawdzić te rzeczy, i można to zrobić przez pierwszy inspekcji domyślną wartość klucza przedłużacza uzyskać ProgID, a następnie sprawdzając shell
podklucz klucza ProgID do uzyskania domyślnego czasownika, a następnie kontroli \shell\verb\command
do uzyskać ścieżkę do uruchomionego programu.
To może być pouczające, aby otworzyć regedit.exe
i przeglądać te klucze rejestru dla innych typów plików, aby uzyskać lepszy obraz tego, jak to wszystko działa.
Powyższe informacje są ważne, jeśli określone rozszerzenie nie jest kontrolowane przez program ustawiony jako domyślny (Programy domyślne) w Panelu sterowania. Możesz sprawdzić ten status, sprawdzając istnienie klucza HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice
. Jeśli tak, musisz anulować kontrolę nad programami domyślnymi, zanim zmiany zaczną obowiązywać. Można to zrobić, usuwając podklucz UserChoice
.
Regedit przeraża mnie trochę lol. Dzięki za pomoc! – Cyclone