如果在我的安装过程中需要提升权限来运行特定的安装程序,我如何强制 Inno Setup 显示 UAC 提示?跳过安装此安装程序并不重要。我发现我可以指定 AfterInstall 函数来测试是否需要提升权限(IsAdminLoggedOn()),但是如何显示 UAC 提示以以特定用户身份运行此安装程序?
问问题
1117 次
1 回答
0
找到了解决方案。因此,如果您需要在设置期间以提升的权限运行特定安装程序,您需要:
在部分中指定您的安装程序,
Files
如下所示:[Files] Source: "SomeSetup.exe"; DestDir: "{tmp}"; AfterInstall: SomeSetupAfterInstall()
在
Code
部分中,您将定义SomeSetupAfterInstall()
. 如果不是管理员启动的设置,您应该在此处使用runas
动词 using运行安装程序。ShellExec
它可能是这样的:procedure SomeSetupAfterInstall(); var ErrorCode: Integer; TmpPath: String; RunMethod: String; begin TmpPath:=ExpandConstant('{tmp}'); if not IsAdminLoggedOn() then begin RunMethod := 'runas'; end else begin RunMethod := ''; end; ShellExec (RunMethod, TmpPath + '\SomeSetup.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode); end;
于 2013-12-10T04:21:58.753 回答