Где я могу записывать данные в Windows Vista, используя любую учетную запись и быть доступным для просмотра из всех других учетных записей? - PullRequest
4 голосов
/ 30 октября 2008

Мне нужно написать некоторые регистрационные данные (уникальный номер компьютера и соответствующий код активации).

Номер компьютера должен быть виден из других программ и всех учетных записей ({Admin | Non Admin} с включенным контролем доступа пользователя {On | Off})

Допустимо записывать номер компьютера и код активации только из учетной записи администратора, но ее необходимо читать из любой другой учетной записи.

В настоящее время (и мне нужно проверить это подробнее), кажется, что если CN и код активации записаны с выключенным UAC, то когда пользователь включает UAC, номер компьютера не отображается.

Ответы [ 2 ]

3 голосов
/ 30 октября 2008

Местоположение, возвращаемое

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

Это то же место, которое Джоэл упомянул в своем сообщении, но это правильный способ получить это значение (которое изменило местоположение между XP и Vista и может измениться снова).

(Это, конечно, для .NET. Для Win32 вы хотите использовать функцию SHGetFolderPath с CSIDL_COMMON_APPDATA)

3 голосов
/ 30 октября 2008

Во время установки вы можете записать его в папку установки вашей программы, поскольку, предположительно, она не изменится (потребуется доступ для записи) позже. Вы все еще должны были иметь доступ для чтения там как обычный пользователь. Иначе как бы запустить программу? :)

Или вы можете использовать папку «Данные всех пользователей». В XP это обычно соответствует C:\Documents and Settings\All Users\Application Data\YourApp\. Передо мной нет Vista, поэтому я не могу дать вам точное местоположение в данный момент, но это должно быть довольно простое отображение.

...