• 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

VPS Starter Arubacloud
+1 głos
454 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,290 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 (194,920 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 (194,920 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 (251,170 p.)
1
komentarz 16 lipca 2021 przez j23 Mędrzec (194,920 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 634 wizyt
0 głosów
0 odpowiedzi 122 wizyt
pytanie zadane 13 kwietnia 2019 w HTML i CSS przez Alan Kruszyński Obywatel (1,410 p.)
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 17 marca 2019 w Sieci komputerowe, internet przez Sunhan Nowicjusz (160 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...