Witam,
Mam pytanie związane z działaniem aplikacji.
Załóżmy że napisałem program, który ma za zadanie odpalenie dowolnego z 5 innych. Wszystkie one skopiowane są przez instalator do katalogu
Program Files (x86). Program je wywołujący jak i programy wywoływane zapisują swoje dane w katalogu ich instalacji.
Np:
C:\Program Files (x86)\MójProgram\Starter.exe
C:\Program Files (x86)\MójProgram\Program1\App1.exe
C:\Program Files (x86)\MójProgram\Program1\App1.ini
...
C:\Program Files (x86)\MójProgram\Program5\App5.exe
C:\Program Files (x86)\MójProgram\Program5\App5.ini
Problem:
W nowoczesnych systemach program nie może zapisać bez odpowiednich uprawnień swoich ustawień w katalogach systemowych.
Aby zatem móc to zrobić wymagane jest podniesienie jego uprawnień poprzez UAC. Możemy rozpatrzyć 3 scenariusze.
- Podniesienie uprawnień dla aplikacji zapisującej dane
- Zmiana uprawnień do katalogu instalacji i przypisanie mu prawa modyfikacji
- Użycie katalogu innego niż systemowy (instalacji), jak np. %appdata% (czyli poprawne zachowanie).
Moje pytanie jest takie. Która z wymienionych metod jest prawidłowa i dlaczego?
Ps: Załóżmy, że UAC jest niewygodny i nie chcemy go uzywać (chcemy mieć możliwość dowolnego zapisu danych, jak w czasach WinXP).
Czy pomysł modyfikacji uprawnień katalogu instalacji przez instalator jest sensowna? Co ryzykujemy?
Proszę potraktować temat jako swobodne rozważania.
-Pawel