我想用PrivilegesRequired=lowest
运行设置。如何设置和运行应用程序(dxwebsetup.exe)以使用具有管理员权限的设置进行安装?
我的代码(Inno Setup - Avoid displaying filenames of sub-installers):
procedure CurStepChanged(CurStep: TSetupStep);
var
ProgressPage: TOutputProgressWizardPage;
ResultCode: Integer;
begin
if CurStep = ssInstall then
begin
if IsComponentSelected('DirectX') then
begin
ProgressPage := CreateOutputProgressPage('Installing prerequsities', '');
ProgressPage.SetText('Installing DirectX...', '');
ProgressPage.Show;
try
ExtractTemporaryFile('dxwebsetup.exe');
StartWaitingForDirectXWindow;
Exec(ExpandConstant('{src}\_Redist\dxwebsetup.exe'), '', '', SW_SHOW,
ewWaitUntilTerminated, ResultCode);
finally
StopWaitingForDirectXWindow;
ProgressPage.Hide;
end;
end;
end;
end;
答案 0 :(得分:1)
将ShellExec
与runas
动词一起使用,而不是Exec
:
ShellExec('runas', ExpandConstant('{src}\_Redist\dxwebsetup.exe'), '', '', SW_SHOW,
ewWaitUntilTerminated, ResultCode);
当前Inno安装过程在没有管理员权限的情况下运行时,您将收到UAC提示。