Witam,
Chciałbym dodać opcje do menu kontekstowego systemu, oczywiście w kodzie programu. Tak, aby gdy naciśniemy prawym przyciskiem myszy na pliki o pewnych rozszerzeniach został uruchomiony mój program z odpowiednimi parametrami. Próbowałem googla, ale po angielsku są same strony na temat kontrolki context menu, a po polsku - pustka.
Musisz dodać odpowiedni wpis do rejestru, np. w sekcji HCU\Software\Classes. Powinna wystarczyć klasa Registry.
Dzięki bardzo za odpowiedź.
Będę musiał pociągnąć temat bo szukam już długo i nic nie potrafię znaleźć...
Gdzie i z jaką wartością powinienem dodać klucz? Załóżmy że mój program znajduje się w C:\My app.exe. Mogę prosić przykład? Nie mam o tym zielonego pojęcia a google mówi bardzo mało.
Nigdy tego nie robiłem, ale to wygląda na sensowną odpowiedź: http://stackoverflow.com/questions/1387769/create-registry-entry-to-associate-file-extension-with-application-in-c
zajrzyj do rejestru pod klucz HKCR (ten podany przez somekinda zawiera tylko skojarzenia rozszerzeń dla bieżącego usera), popatrz i pomyśl chwilę, struktura danych tłumaczy się sama przez się.
Dzięki bardzo.
Wykorzystałem przykład od somekind'a, pogłówkowałem trochę tak jak radził ŁF i zrobiłem to dla każdego usera. Jednak wciąż czuje niedosyt. Chodzi o to, że teraz plik domyślnie się otwiera moim programem. Robię to dla plików *.doc i *.docx i jednak chciałbym na dwukliku mieć otwarcie przez Word'a, a dopiero gdzieś w context menu do wybrania mój program. Domyślam się, że jestem niedaleko od sukcesu, ale ciągle nie umiem sobie poradzić. Proszę o jeszcze jakąś wskazówkę. Jeszcze raz dziękuję.
chyba pogłówkowałeś niewystarczająco; wystarczyło spojrzeć UWAŻNIE na to, co znajduje się w kluczu dla typu plików, które mają aktywne "open with". oczom Twoim ukazałby się klucz OpenWithProgids, a w nim wartości prowadzące do kluczy, w których są skonfigurowane wpisy dla większości programów znajdujących się w pożądanym przez Ciebie podmenu.
Tak czy inaczej, na przyszłość, dla innych. Po przykładzie MSM'a zauważyłem że standardowe otwieranie doc'ów, zapisane przez worda, przysłania mi wszystko to co dodam do Shell'a rozszerzeń *.doc i *.docx. Osiągnąłem mój cel gdy zostawiłem standardowe otwieranie dla rozszerzenia, a edytowałem Shell'a Word.Document.8 i Word.Document.12.
Dzięki za pomoc.
Klucze w rejestrze które szukasz to : HKey_CLASSES_ROOT* \ shellex \ ContextMenuHandlers
i 2 klucz chyba nie muszę tłumaczyć nazwa mówi za siebie: HKey_CLASSES_ROOT* \OpenWithList