NSIS-启动应用程序时提升为管理员

问题描述 投票:-1回答:1

我是NSIS安装程序的新手。对于我的产品之一,我需要提升该应用程序以管理员身份运行。我找到了一个UAC插件,希望它能满足我的需求。这是我第一次将插件编码到NSIS脚本中。我试图找到一些有用的文档,告诉我如何在脚本中调用它们。如果您知道任何示例脚本,初学者帮助文档,请让我知道。

谢谢!

nsis nsis-plugin
1个回答
0
投票

需要提升两个步骤:

  1. 应用程序清单中的请求海拔高度
  2. 验证您确实被提升了

您可以在NSIS中执行以下操作:

 RequestExecutionLevel Admin ; Request admin rights on WinVista+ (when UAC is turned on)

!include LogicLib.nsh

!macro EnsureAdminRights
  UserInfo::GetAccountType
  Pop $0
  ${If} $0 != "admin" ; Require admin rights on WinNT4+
    MessageBox MB_IconStop "Administrator rights required!"
    SetErrorLevel 740 ; ERROR_ELEVATION_REQUIRED
    Quit
  ${EndIf}
!macroend

Function .onInit
  SetShellVarContext All
  !insertmacro EnsureAdminRights
FunctionEnd

Function un.onInit
  SetShellVarContext All
  !insertmacro EnsureAdminRights
FunctionEnd

从此安装程序启动的应用程序也将提升运行。通常这不是您想要的,但是您的问题表明您愿意吗?如果已安装的应用程序需要提升运行,则应在其清单中进行指定。

UAC插件无法帮助您提升。

© www.soinside.com 2019 - 2024. All rights reserved.