Ja mam UAC wyłączony w win7 całkiem więc nie testowałem nigdy tego.
Domyślnie zapisuję ini do katalogu z programem w folderze ustawienia.
Ja również mam wyłączony UAC, bo mnie wkurza, ale trzeba myśleć globalnie jeżeli tego programu ma używac ktoś poza Toba. Poza tym śmiecenie akurat w C:\ to też zły pomysł.
- Ale mówisz, że jak ktoś na pulpicie będzie trzymał folder z programem, to wtedy pliki INI w ogóle się nie utworzą? :( Jeśli tak to tragedia.
Tylko lame ne0 kidsy sciągają programy zawsze na pulpit, tacy pr0 l4my jak ja używają Total Commandera i nim się wspierają przy operacjach na pobranych plikach. Poza tym programy raczej warto trzymać w Program Files
, a więc przyda się instalator i ewentualne dodanie odpowiedniego manifestu do zasobów programu aby wymusić jego uruchomienie jako Admin.
- A jeśli użytkownik odpali program klikając prawym -> uruchom jako administrator, wtedy pliki INI utworzy?
Wtedy powinien, a najlepiej zamiast pytać po prostu włacz na jakiś czas UAC i zrób testy.
- A jeśli wrzucę program razem z plikami INI, gość sobie wypakuje program, uruchomi go z dysku C, to wtedy pliki INI program odczyta? I zapisze zmiany w plikach INI, czy w ogóle pomimo istnienia plików INI, windows i tak zabierze prawa do zapisu?
Z właczonym UAC o ile się orientuje do zapisu plików poza paroma lokalizacjami musiz mieć prawa do tego. Najlepiej zamiast pytać mnie, to zrób porządne testy przed wypuszczeniem swojego programu.
A co do katalogu %APPDATA%, wolałbym uniknąć tego. Wolę by ktoś kasując folder z programem (program i tak jest portable), wywalił i program i wszystkie pliki od razu (w tym INI). Instalatora nie chcę robić, bo sam osobiście nie lubię programów, które mają instalatory, choć im taki instalator bardzo często jest zbędny.
Jak instalator Ci zbędny to informuj użytkownika lub zrób batcha albo przycisk w programie do czyszczenia pliku z konfiguracją i ewentualnego podfolderu. W dzisiejszych czasach wszystkie programy, które nie korzystają z samego exeka i configu w typowej do spradzenia ścieżce powinny mieć instalatory jeżeli chcemy ułatwiać potencjalnym użytwkikom życie i chcemy aby w momencie jak chcą się pozbyć naszego programu z dysku nie posiadali na nim dodatkowych śmieci na dysku czy w rejestrze. Także zaintersuj się NSISem lub InnoSetup. Są najpopularniejsze. Ja mimo iż umiem programować tylko w Delphi / Pascalu, to jako pierwszym zainteresowałem się NSISem do robienia prostych instalek na własne potrzeby. Podejrzewam jednak, że i do jednego i do drugiega znajdzie się w google wiele dokumentacji i przykładów. Tak na pewno jest w przypadku NSISa. Do Inno Setup nie szukałem specjalnie, bo nie go używam póki co.