• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

program używający własnego rozszerzenia

Fiszki IT
Fiszki IT
+1 głos
108 wizyt
pytanie zadane 15 lipca w C i C++ przez Pabllo26 Użytkownik (620 p.)
Witam
Orientuje się ktoś może jak w c++ zaprogramować taką akcję, kiedy ktoś otwiera sam plik do naszego programu? Wiem że trzeba taki program wpisać do rejestru w systemie, tylko nie wiem jak to zaprogramować w c++
Z góry dzięki za odpowiedź
komentarz 15 lipca przez Oscar Pasjonat (19,010 p.)
A po co chcesz to robić z poziomu programu? To powinien zrobić instalator.
komentarz 15 lipca przez Pabllo26 Użytkownik (620 p.)
źle mnie zrozumiałeś. Mam zamiar napisać program, który będzie tego rozszerzenia używał, tak jak np. paint używa .png czy tam .jpg. I o to pytam jak zaprogramować taką akcję otwieranego pliku
komentarz 16 lipca przez j23 Mędrzec (164,140 p.)
Czyli nie pytasz się, jak zarejestrować takie rozszerzenie z poziomu twojej aplikacji, tylko jak pobrać ścieżkę do "dwuklikniętego" pliku, tak?
komentarz 16 lipca przez Pabllo26 Użytkownik (620 p.)
No tak
1
komentarz 16 lipca przez j23 Mędrzec (164,140 p.)

Prosto:

int main(int argc, char *argv[])
{
    if(argc > 1) {
        std::cout << argv[1] << '\n';
        std::cin.get();
    }
}

 

2 odpowiedzi

0 głosów
odpowiedź 16 lipca przez mdatelier Mądrala (7,020 p.)
Za obsługę skojarzeń plików odpowiada system operacyjny. Wskazujesz mu rozszerzenie twojego pliku, a następnie ścieżkę do głównego pliku wykonywalnego twojej aplikacji. Z tego co kojarzę to ścieżkę do tego pliku podaję jako pierwszy argument wiersza poleceń. Potem w programie musisz dodać obsługę w sytuacji kiedy taki argument zostanie podany. Można to zrobić ręcznie w panelu sterowania. Nie trzeba grzebać w rejestrze.

Nie wiem jak to jest w C++, ale w C# można z poziomu aplikacji dodać skojarzenie, ale głównie robi to instalator aplikacji. Podczas instalacji dodaje odpowiednie wpisy do rejestru odpowiedzialne właśnie za obsługę danego formatu pliku.
0 głosów
odpowiedź 16 lipca przez VBService VIP (120,980 p.)
1
komentarz 16 lipca przez j23 Mędrzec (164,140 p.)

Poprawna rejestracja powinna wyglądać tak:

  • w kluczu HKEY_LOCAL_MACHINE\Software\Classes rejestruje się rozszerzenia dla wszystkich użytkowników (trzeba praw admina).

  • w kluczu HKEY_CURRENT_USER\Software\Classes rejestruje się tylko dla aktualnego konta. Rozszerzenia zarejestrowane tutaj mają prymat nad tymi z gałęzi HKLM.

HKEY_CLASSES_ROOT to widok złożony z zawartości HKLM i HKCU.

 

To tak gwoli doprecyzowania ;)

Podobne pytania

+2 głosów
2 odpowiedzi 224 wizyt
0 głosów
0 odpowiedzi 57 wizyt
pytanie zadane 13 kwietnia 2019 w HTML i CSS przez Alan Kruszyński Obywatel (1,410 p.)
0 głosów
1 odpowiedź 63 wizyt
pytanie zadane 17 marca 2019 w Sieci komputerowe, internet przez Sunhan Nowicjusz (160 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

84,721 zapytań

133,524 odpowiedzi

295,917 komentarzy

55,997 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...