2009-10-12 10 views
7

Dostaję się, jak to zrobić, i byłem wcześniej przed http://www.codeproject.com/KB/vb/VBFileAssociation.aspx. Moje pytanie dotyczy tego, co to oznacza, czy można to odwrócić? A co, jeśli nie wiesz, gdzie będzie twój program, a na razie tylko go testujesz? Czy istnieje sposób na "odnalezienie" twojego programu lub łatwy sposób edycji miejsca, w którym jest on otwarty? Jeśli o to chodzi, czy możliwe jest sprawdzenie, czy plik został już powiązany, czy jest to problem, który należy spróbować ponownie powiązać? Wreszcie, w jaki sposób można ustawić plik .ico, którego używa?Skojarzenie rozszerzeń plików z programem

Dzięki za pomoc, wiem prawie nic o rejestrze i to myli mnie lol ...

Odpowiedz

17

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.

+0

Regedit przeraża mnie trochę lol. Dzięki za pomoc! – Cyclone