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