在Windows 7和Vista上启用UAC的安装/卸载

时间:2011-06-22 11:13:09

标签: nsis

我正在使用NSIS(编辑器的HM NISedit 2.0.3)来构建我的应用程序的设置。对于带有UAC(7和vista)的Windows,它有时不会安装,直到我右键单击mysetup.exe并说以管理员身份运行(卸载的情况也是如此)。当我关闭UAC时,这不会发生。请建议我在安装过程中如何在我的脚本中禁用UAC或以其他方式克服此UAC问题?   请为我目前面临的上述问题提出一些解决方案。

1 个答案:

答案 0 :(得分:1)

如果您需要管理员权限,您应该使用requestexecutionlevel来标记安装程序(如果您安装到$ 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