HKLM реестр сомнений - PullRequest
       23

HKLM реестр сомнений

4 голосов
/ 01 июня 2011

Мое приложение обновляет некоторые поля реестра, связанные с лицензированием в соответствии с HKLM.Это для доступа к информации для всех пользователей в системе.Это заставляет нас запускать наше приложение от имени администратора.Есть ли какое-либо другое место в реестре, где я могу хранить информацию, к которой могут обращаться все пользователи?

Ответы [ 4 ]

3 голосов
/ 01 июня 2011

HKLM реестра и папка% ALLUSERSPROFILE% доступны всем пользователям, но предназначены для записи во время установки (от имени администратора).

Реестр HKCU и папка% APPDATA% доступны текущему пользователю и предназначены для записи в любое время.

Почему вы изменяете информацию о лицензировании (общую для всех пользователей) во время работы, а не только во время установки?

3 голосов
/ 01 июня 2011

Вы можете поместить как (например) XML-документ в файловую систему в общую папку вместо Реестра.

например. System.Environment.SpecialFolder.CommonDocuments или CommonApplicationData.

2 голосов
/ 01 июня 2011

нет там нет. Если вам нужно внести изменения, которые будут влиять / быть видимыми для всех пользователей, вам придется иметь дело с UAC или повысить уровень вашего приложения при запуске. Это часть дизайна UAC. Однако, если вы хотите записать файл, вы можете предоставить всем пользователям доступ к этому файлу без вмешательства UAC.

Если, однако, вы только читаете реестр, вы можете сделать это, не повышая свои права безопасности. Поэтому, если вы один раз напишете в реестр, а затем просто прочитаете его позже, вы можете сделать это, только когда повысите свои права один раз.

Вот статья о том, как приятно играть с UAC:

http://msdn.microsoft.com/en-us/magazine/cc163486.aspx

1 голос
/ 01 июня 2011

Я бы заставил ваш установщик создавать записи реестра (он обычно запускается от имени администратора) и открывать их разрешения, используя GetSecurityInfo и SetSecurityInfo.Тогда ваше приложение может писать в них без каких-либо специальных разрешений.

...