2020-07-09 11:09:30 +02:00
|
|
|
; -- CodeDownloadFiles.iss --
|
|
|
|
;
|
2020-07-23 20:08:26 +02:00
|
|
|
; This script shows how the CreateDownloadPage support function can be used to
|
|
|
|
; download temporary files while showing the download progress to the user.
|
2020-07-09 11:09:30 +02:00
|
|
|
|
|
|
|
[Setup]
|
|
|
|
AppName=My Program
|
|
|
|
AppVersion=1.5
|
|
|
|
WizardStyle=modern
|
|
|
|
DefaultDirName={autopf}\My Program
|
|
|
|
DefaultGroupName=My Program
|
|
|
|
UninstallDisplayIcon={app}\MyProg.exe
|
|
|
|
OutputDir=userdocs:Inno Setup Examples Output
|
|
|
|
|
|
|
|
[Files]
|
|
|
|
; Place any regular files here
|
|
|
|
Source: "MyProg.exe"; DestDir: "{app}";
|
|
|
|
Source: "MyProg.chm"; DestDir: "{app}";
|
|
|
|
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme;
|
|
|
|
; These files will be downloaded
|
|
|
|
Source: "{tmp}\innosetup-latest.exe"; DestDir: "{app}"; Flags: external
|
|
|
|
Source: "{tmp}\ISCrypt.dll"; DestDir: "{app}"; Flags: external
|
|
|
|
|
|
|
|
[Icons]
|
|
|
|
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
|
|
|
|
|
|
|
|
[Code]
|
|
|
|
var
|
2020-07-23 20:08:26 +02:00
|
|
|
DownloadPage: TDownloadWizardPage;
|
2020-07-09 11:09:30 +02:00
|
|
|
|
2020-07-23 20:08:26 +02:00
|
|
|
function OnDownloadProgress(const Url, FileName: String; const Progress, ProgressMax: Int64): Boolean;
|
2020-07-09 11:09:30 +02:00
|
|
|
begin
|
2020-07-23 20:08:26 +02:00
|
|
|
if Progress = ProgressMax then
|
|
|
|
Log(Format('Successfully downloaded file to {tmp}: %s', [FileName]));
|
|
|
|
Result := True;
|
2020-07-09 11:09:30 +02:00
|
|
|
end;
|
|
|
|
|
|
|
|
procedure InitializeWizard;
|
|
|
|
begin
|
2020-07-23 20:08:26 +02:00
|
|
|
DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), @OnDownloadProgress);
|
|
|
|
end;
|
|
|
|
|
|
|
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
|
|
|
begin
|
|
|
|
if CurPageID = wpReady then begin
|
|
|
|
DownloadPage.Clear;
|
|
|
|
DownloadPage.Add('https://jrsoftware.org/download.php/is.exe', 'innosetup-latest.exe', '');
|
|
|
|
DownloadPage.Add('https://jrsoftware.org/download.php/iscrypt.dll', 'ISCrypt.dll', '2f6294f9aa09f59a574b5dcd33be54e16b39377984f3d5658cda44950fa0f8fc');
|
|
|
|
DownloadPage.Show;
|
|
|
|
try
|
|
|
|
try
|
2021-03-11 13:43:03 +01:00
|
|
|
DownloadPage.Download; // This downloads the files to {tmp}
|
2020-07-23 20:08:26 +02:00
|
|
|
Result := True;
|
|
|
|
except
|
2020-12-10 13:56:46 +01:00
|
|
|
if DownloadPage.AbortedByUser then
|
|
|
|
Log('Aborted by user.')
|
|
|
|
else
|
|
|
|
SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbCriticalError, MB_OK, IDOK);
|
2020-07-23 20:08:26 +02:00
|
|
|
Result := False;
|
|
|
|
end;
|
|
|
|
finally
|
|
|
|
DownloadPage.Hide;
|
|
|
|
end;
|
|
|
|
end else
|
2020-07-20 19:36:49 +02:00
|
|
|
Result := True;
|
2020-07-23 20:08:26 +02:00
|
|
|
end;
|