我想知道在完成安装之前如何添加复选框。该复选框将询问用户是否要下载并安装第二个系统。在接受所有脚本和安装步骤后,它应出现在屏幕上。检查设置时,应通过HTTP下载另一个安装程序,然后安装下载的应用程序。
答案 0 :(得分:2)
您可以在安装页面(wpInstalling
)之后创建自定义选项页面(CreateInputOptionPage
)。
如果用户选择,则使用Inno Download Plugin来触发下载。
下载后,例如当"完成"页面(wpFinished
)显示,执行下载的应用程序。
[Code]
#include "idp.iss"
var
DownloadOptionPage: TInputOptionWizardPage;
procedure InitializeWizard();
begin
DownloadOptionPage :=
CreateInputOptionPage(wpInstalling,
'Additional download',
'Select what additional components do you want to download and install.',
'', False, False);
DownloadOptionPage.Add('Something');
idpDownloadAfter(DownloadOptionPage.ID);
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = DownloadOptionPage.ID then
begin
if DownloadOptionPage.Values[0] then
begin
idpAddFile(
'https://www.example.com/something.exe', ExpandConstant('{tmp}\something.exe'));
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
var
FileName: string;
ResultCode: Integer;
begin
if CurPageID = wpFinished then
begin
FileName := ExpandConstant('{tmp}\something.exe');
if FileExists(FileName) then
begin
if not Exec(FileName, '', '', SW_SHOW, ewNoWait, ResultCode) then
begin
MsgBox(Format('Error executing %s', [FileName]), mbError, MB_OK);
end;
end;
end;
end;
虽然在安装完成后,Inno Setup和Download Plugin都没有真正设计用于执行任何操作。例如,"取消" 按钮被隐藏,因此您无法取消下载。更糟糕的是,如果因任何原因导致下载失败,则无法退出安装程序。
它可能可以解决。
但您可以考虑使用标准工作流,其中收集所有用户选项并在安装之前下载依赖项。