Установка / удаление с включенным контролем учетных записей для Windows 7 и Vista - PullRequest
1 голос
/ 22 июня 2011

Я использую NSIS (HM NISedit 2.0.3 для редактора) для создания настроек моего приложения. Для Windows с UAC (7 и Vista) он иногда не устанавливается до тех пор, пока я не щелкну правой кнопкой мыши на mysetup.exe и скажу «Запуск от имени администратора» (то же самое и в случае удаления). Это не происходит, когда я выключаю UAC. Подскажите, пожалуйста, как отключить UAC в моем сценарии, прежде чем продолжить установку ИЛИ как-нибудь еще решить эту проблему? Пожалуйста, предложите какое-нибудь решение для вышеуказанной проблемы, с которой я сейчас сталкиваюсь.

1 Ответ

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

Если вам нужны права администратора, вы должны использовать requesttexecutionlevel, чтобы отметить установщик (если вы устанавливаете в $ programfiles или пишете в HKEY_LOCAL_MACHINE):

RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)

!include LogicLib.nsh

Function .onInit
UserInfo::GetAccountType
pop $0
${If} $0 != "admin" ;Require admin rights on NT4+
    MessageBox mb_iconstop "Administrator rights required!"
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
    Quit
${EndIf}
FunctionEnd

Если вы устанавливаете только для текущего пользователя ($ appdata / $ localappdata и HKEY_CURRENT_USER), вы можете просто использовать RequestExecutionLevel user

...