в моем приложении Мне нужно сохранить настройки, которые являются «глобальными» (то есть не определенными пользователем) в известном и предсказуемом месте.Сохранение глобальных данных как стандартного пользователя?
Я хочу, чтобы приложение можно было запускать из любого места (в качестве стандартного пользователя, НЕ администратора), включая несколько копий из разных мест и иметь возможность читать и записывать сохраненные файлы конфигурации.
Данные должны иметь доступ на чтение и запись, предоставляемый всем стандартным пользователям, а не только один.
Имея это в виду, четыре варианта, отмеченные здесь неуместны: http://msdn.microsoft.com/en-us/library/bb206295(VS.85).aspx#ID0E1BA
Так каковы мои альтернативы?
Мое приложение написано на C++ и только для Windows. Мне нужно поддерживать Windows XP и выше.
Спасибо.
EDIT:
Для уточнения, игнорировать условия гонки, вызванные несколькими экземплярами. Этот вопрос связан исключительно с ГДЕ КУПИТЬ ДАННЫЕ. Я не могу увидеть где-нибудь подходящим именно:
- предсказуемых (например,% APPDATA% \ Foo является 'предсказуемым' путем, но, к сожалению, для конкретного пользователя)
- Global (например,% Programdata% \ Foo является глобальный путь, но, к сожалению, только пользователь, создающий имеет записи доступ)
- доступ (стандартный пользователь должен иметь возможность создавать новые файлы в данном каталоге, это относится ко всем пользователям системы)
«вы можете установить установщиком что-то в HKLM \ SOFTWARE \ <вы app subkey>" Я сделал это в широко распространенных настольных приложениях. У меня есть установщик, который предоставляет стандартные разрешения для записи на этот ключ. –
@Jim: Я не упоминал об установке ACL для раздела HKLM на что-то, что можно было бы записать стандартными пользователями (что также можно было бы сделать для подкаталога каталога программы), поскольку я считаю, что это обычно считается плохой практикой (хотя я, я не уверен, что согласен). Я думал, что это также может быть проблемой с сертификацией логотипа, хотя я не знаю, правильно это или нет. –