W mojej aplikacji muszę przechowywać ustawienia, które są "globalne" (tj. Nieokreślone przez użytkownika) w znanej i przewidywalnej lokalizacji.Zapisywanie "globalnych" danych jako standardowy użytkownik?
Chcę, aby aplikacja mogła być uruchamiana z dowolnego miejsca (jako standardowy użytkownik, NIE administrator), w tym wiele kopii z różnych lokalizacji i mieć możliwość odczytu i zapisu zapisanych plików konfiguracyjnych.
Dane muszą mieć dostęp do odczytu i zapisu dla wszystkich standardowych użytkowników, a nie tylko jednego.
Mając to na uwadze, cztery opcje zauważyć są nieodpowiednie: http://msdn.microsoft.com/en-us/library/bb206295(VS.85).aspx#ID0E1BA
Więc jakie są moje alternatywy?
Moja aplikacja napisana jest w C++ i tylko dla Windows. Potrzebuję obsługi systemu Windows XP i nowszych.
Dzięki.
EDIT:
celu wyjaśnienia, ignorować warunków wyścigu spowodowane wieloma instancjami. To pytanie dotyczy wyłącznie GDZIE SKŁADAĆ DANE. Nie widzę nigdzie nadaje czyli:
- przewidywalne (np% appdata% \ Foo jest 'przewidywalne' ścieżka, ale niestety dla konkretnego użytkownika)
- Global (np% ProgramData% \ Foo jest globalny droga ale niestety tylko użytkownikowi tworzenie ma zapisu dostępu)
- dostępne (standardowy użytkownik musi mieć możliwość tworzenia nowych plików w danym katalogu, to odnosi się do wszystkich użytkowników systemu)
"możesz poprosić program instalacyjny o napisanie czegoś do HKLM \ SOFTWARE \" Zrobiłem to w szeroko rozproszonych aplikacjach komputerowych. Mam, aby instalator podał standardowe uprawnienia użytkownika do zapisu na tym kluczu. –
@Jim: Nie wspominałem o ustawianiu listy ACL dla podklucza HKLM na coś, co można zapisać przez standardowych użytkowników (co można również zrobić dla podkatalogu katalogu programu), ponieważ uważam, że jest to ogólnie uważane za złą praktykę (chociaż ja ' nie jestem pewien, czy się zgadzam). Pomyślałem, że może to być problem z certyfikacją logo, choć nie wiem, czy to prawda, czy nie. –