Program C ++ potrzebuje skojarzenia plików

Rozprowadzam darmowy produkt, który czyta i zapisuje pliki tekstowe z unikalnym rozszerzeniem. Miałem nadzieję, że dwukrotne kliknięcie takiego pliku automatycznie uruchomi aplikację.

Podczas opracowywania w systemie Windows 7 Professional skonfigurowałem powiązanie, aby otworzyć moje pliki po dwukrotnym kliknięciu, klikając prawym przyciskiem myszy plik-> Otwórz za pomocą ...-> Wybierz program domyślny ...-> Przeglądaj ..., a następnie „Zawsze używaj wybranego programu do otwierania tego typu pliku.” Dobry. Zrobił dokładnie to, czego potrzebował. Zamierzałem wysłać mój program z instrukcjami dla użytkowników, aby zrobili to samo.

Jednak gdy przeniosłem lokalizację pliku binarnego, widzę, że „Zawsze używaj” jest teraz wyszarzone / niewrażliwe, więc gdy mogłem przejść do nowego pliku binarnego, nie mogłem go ustawić jako domyślnego. Ponieważ myślałem, że moi użytkownicy też będą mieli z tym kłopoty, chciałem sprawdzić, czy mogę zainstalować lub uruchomić program dbać o mapowanie.

Sprawdziłem Instalatora Windows przez około 5 minut, zanim ustaliłem, że ma o wiele więcej mocy i złożoności niż potrzebowałem (na moje potrzeby wystarczy plik zip z wyjątkiem tego mapowania plików).

Przyjrzałem się więc temu, jak mój program, podczas uruchamiania, sam skonfigurował mapowanie, jeśli go tam nie było. (Wiem, że byłoby to bardzo złe zachowanie, gdybyśmy mówili o typowym typie pliku, takim jak .html lub .jpg, ale w tym przypadku jest to pewne rozszerzenie .blahblah, którego z pewnością nikt nie używa do niczego).

Na podstawie informacji pod adresemhttp://www.cplusplus.com/forum/windows/26987/ ihttp://msdn.microsoft.com/en-us/library/cc144148(v=vs.85).aspx Podczas uruchamiania mogłem otworzyć program HKEY_CLASSES_ROOT i zatwierdzić (i zmienić w razie potrzeby) domyślny tekst, aby był dokładnym opisem pliku (zastępując tekst, który mógł zostać utworzony domyślnie, gdy robiłem ręczne stowarzyszenie zeszłego lata). Jednak jeśli chodzi o tworzenie komendy HKEY_CLASSES_ROOT o nazwie komenda.app.1 open, mój wrapper RegCreateKeyEx (), który działa dobrze w celu zmiany wartości blahblah, daje teraz kod powrotu 5, najwyraźniej brak uprawnień.

Po dalszych badaniach wydaje się, że model uprawnień może spowodować niepowodzenie wszystkich takich żądań. Czy ktoś może to potwierdzić lub zaprzeczyć? Jeśli potwierdzisz, czy jest dobre odniesienie, które powinienem zbadać w tej sprawie?

W przeciwnym razie, jakie są sugestie? Czy powinienem odgryźć punktor i przestudiować Instalatora Windows? Czy istnieje sposób na uzyskanie uprawnień, których potrzebuję do edycji rejestru, gdy moje własne oprogramowanie uruchamia się po raz pierwszy?

Uwaga: Pracuję z Visual Studio 2008 w systemie Windows 7 Professional i chociaż nadal jestem amatorem programisty Windows, to pracuję nad C ++ od lat 80. na Unix / Linux ...

questionAnswers(2)

yourAnswerToTheQuestion