Доступ к ветке реестра HKLM на Win 7 из приложения - PullRequest
2 голосов
/ 30 июня 2010

Можно ли записать в ветку реестра HKLM в Win 7 из приложения?

Мой существующий код не может записывать в ветку реестра HKLM на машинах с Win 7, в то время как способен делать это на машинах с XP.

Как вы разрешаете приложению доступ на чтение / запись к HKLM в Win 7, или теперь все приложения должны просто вместо этого использовать HKCU? Что делать, если мне нужно хранить настройки на основе компьютера, а не пользователя?

Ответы [ 2 ]

4 голосов
/ 30 июня 2010

Вам необходимо решить, пишете ли вы административное приложение, которое намеренно изменяет настройки для всех пользователей (посредством записи в HKLM), или обычное приложение, которое этого не делает.Если вы действительно пишете административное приложение, поместите в него манифест с requestedExecutionLevel из requireAdministrator.Пользователь будет получать приглашение UAC при каждом запуске приложения, но ваши записи в HKLM будут успешными.В качестве альтернативы, измените приложение на запись в HKCU или в другое хранилище для каждого пользователя.

(Не знаете, как добавить манифест?)

Использование виртуализации - плохая идея.Это было реализовано, чтобы позволить непроявленным приложениям по крайней мере что-то вроде работы.Когда-нибудь оно уйдет и не будет таким уж большим, пока оно здесь.

0 голосов
/ 30 июня 2010

Win 7 использует Виртуализация реестра

Прочтите статью и посмотрите на (HKEY_USERS\<User SID>_Classes\VirtualStore\Machine\Software).

...