Mam taki problem do rozwiązania. Od jakiegoś czasu rozwijam projekt oparty na menedżerze plików Total Commander.
Sam menedżer plików rozprowadzany jest ze starannie dobranymi i skonfigurowanymi darmowymi aplikacjami. Problemem jest katalog instalacji dla plików projektu (musi on zapewniać uprawnienia do zapisu).
Ps: Nie za bardzo wiedziałem w jakim dziale umieścić post... projekt powstaje w Delphi, więc padło na Dział Delphi...
Teoretycznie mój problem nie jest problemem (ale tylko teoretycznie). Normalny program w Windows zapisuje pliki instalacji w katalogu instalacji, a swoje ustawienia (i wszystkie pliki, które są zmieniane) przechowuje w katalogu użytkownika, czyli np. C:\Users\Pawel\AppData\Roaming\Test
ALE, mój projekt jest specyficzny - oprócz moich własnościowych aplikacji, instaluję również wiele zewnętrznych aplikacji, które zapisują swoje dane w swoim katalogu. Dlatego, nie mając na to wpływu, muszę zadbać o to, aby miały one uprawnienia do zapisu plików konfiguracyjnych. Dlatego, obecnie stosuje następujące rozwiązanie:
Instalacja w trybie:
-
PRZENOŚNYM - Przykładowa lokalizacja: C:\Users\Pawel\Desktop\Test
W trybie przenośnym nie ma problemu - Wszystko instalowane jest w 1 katalogu. Każda aplikacja zapisuje swoje dane w
swoim katalogu (Katalog instalacji musi mieć oczywiście prawa zapisu). -
NORMALNYM - Przykładowa lokalizacja: C:\Program Files (x86)\Test
W tym trybie wszystko instalowane jest do katalogu Test, który jest podkatalogiem systemowego Program Files (x86).
Jak wiadomo, katalog ten jest katalogiem chronionym i normalnie programy nie mają prawa zapisu (bez uprawnień administratora).
W związku z tym, mój instalator zmienia uprawnienia do katalogu instalacji 'Test' (i potomnych)! Dzięki temu, programy mogą normalnie zapisywać dane.
CZYLI:
-
Czy dobrym pomysłem jest instalacja wszystkiego w katalogu \Program Files\Test i ZMIANA UPRAWNIEŃ dla niego?
Czym to grozi? Czy niesie to jakieś niebezpieczeństwo dla użytkownika? Czy może to tylko naruszenie zaleceń Microsoft -
Jak inaczej można rozwiązać ten problem (bez nadawania uprawnień chronionemu katalogowi)?
-
Czy dobrym pomysłem jest instalacja wszystkiego w katalogu C:\ProgramData\Test?
Katalog ProgramData to katalog, który jest dostępny dla wszystkich użytkowników i nie wymaga uprawnień administratora.
Część aplikacji zapisywałaby dane w podkatalogu instalacji (C:\ProgramData\Test), a część z nich w podkatalogu użytkownika (C:\Users\Pawel\AppData\Roaming\Test) -
A może instalacja wszystkiego w katalogu użytkownika (C:\Users\Pawel\AppData\Roaming\Test)?
Co o tym sądzicie? Jak zrobić to "zgodnie ze sztuką"?
Jestem ciekaw waszych opinii.
Pamiętajcie, że ograniczony jestem zewnętrznymi aplikacjami. Niektóre z nich zapisują swoje dane w katalogu instalacji ( i nie mogę tego zmienić).
-Pawel