• 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

Cloud VPS
+1 głos
847 wizyt
pytanie zadane 15 lipca 2021 w C i C++ przez Pabllo26 Obywatel (1,280 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 2021 przez Oscar Nałogowiec (29,360 p.)
A po co chcesz to robić z poziomu programu? To powinien zrobić instalator.
komentarz 15 lipca 2021 przez Pabllo26 Obywatel (1,280 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 2021 przez j23 Mędrzec (195,240 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 2021 przez Pabllo26 Obywatel (1,280 p.)
No tak
1
komentarz 16 lipca 2021 przez j23 Mędrzec (195,240 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 2021 przez niezalogowany
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 2021 przez VBService Ekspert (256,600 p.)
1
komentarz 16 lipca 2021 przez j23 Mędrzec (195,240 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 1,060 wizyt
0 głosów
0 odpowiedzi 233 wizyt
pytanie zadane 13 kwietnia 2019 w HTML i CSS przez Alan Kruszyński Obywatel (1,410 p.)
0 głosów
1 odpowiedź 187 wizyt
pytanie zadane 17 marca 2019 w Sieci komputerowe, internet przez Sunhan Nowicjusz (160 p.)

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,903 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...