使用 IDP 根据首次下载的内容下载其他文件



想要使用Inno下载插件(IDP(根据首次下载的内容下载文件。怎么做?

这是我的代码

[Code]
procedure InitializeWizard();
var
line: string;
line2: string;
url: string;
appname: string;
begin
idpAddFile('http://download.website.com/files.txt', ExpandConstant('{tmp}files.txt'));
idpDownloadAfter(wpReady);
TryGetFileLine(expandConstant('{tmp}files.txt'), 0, line);
TryGetFileLine(expandConstant('{tmp}files.txt'), 1, line2);
url := line;
appname := line2;    
idpAddFile(url, ExpandConstant('{tmp}'+appname));
idpDownloadAfter(wpReady);
end;

在这里,第二个文件在第一个文件完成之前开始下载。那么如何一个接一个地制作呢?

告诉 IDP 最初只下载列表。然后等待下载完成(有关此,请参阅在Inno Setup的"代码"部分中下载程序后运行程序(,并根据结果创建新的下载列表并重新开始下载。

var
ListDownloaded: Boolean;
procedure InitializeWizard();
begin
idpAddFile('http://www.example.com/files.txt', ExpandConstant('{tmp}files.txt'));
idpDownloadAfter(wpReady);
ListDownloaded := False;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
Url, AppName: string;
begin
Result := True;
if CurPageID = IDPForm.Page.ID then
begin
if not ListDownloaded then
begin
TryGetFileLine(ExpandConstant('{tmp}files.txt'), 0, Url);
TryGetFileLine(ExpandConstant('{tmp}files.txt'), 1, AppName);
idpClearFiles;
idpAddFile(Url, ExpandConstant('{tmp}' + AppName));
idpFormActivate(nil); { This restarts the download }
Result := False;
ListDownloaded := True;
end;
end;
end;

相关内容

  • 没有找到相关文章

最新更新