微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改 Inno Setup TDownloadWizardPage 的下载位置

如何解决更改 Inno Setup TDownloadWizardPage 的下载位置

我正在使用 Inno Setup 的下载系统,但我想将下载文件夹从 {tmp} 更改为另一个,有人可以帮助我吗?

的:

DownloadPage.Add('{#LinkJava}',ExpandConstant('{tmp}\Java.exe'),'');

用于:

DownloadPage.Add('{#LinkJava}',ExpandConstant('{src}{#PastaGeralDeApps}{#PastaDownPlugins}{#NomeExeJava}'),'');

我正在创建一个自动安装程序,我需要将应用程序存储在一个文件夹中,以便离线使用。

解决方法

您不能使用 TDownloadWizardPage 更改文件下载到的文件夹(请注意,BaseNameTDownloadWizardPage.Add 参数仅接受文件名,而不接受路径)。

但是您可以将文件复制到最终文件夹中,下载完成后。

[Files]
Source: "{tmp}\downloaded-file.exe"; DestDir: "{app}"; flags: external

您当然需要在实际安装之前下载文件。因此,例如从 NextButtonClick(wpReady)official CodeDownloadFiles.iss example 的方式。


如果您需要在安装前将文件移动到最终位置,请使用 RenameFileFileCopy 函数。复制显然更慢,但更可靠,因为您不能在磁盘/文件系统之间移动/重命名。您可以尝试移动,如果移动失败,则退回到复制。

,
//function that performs the download - OK
function DownloadFiles(Url,Destination,FileName,Hash : String): Boolean;
begin
    DownloadPage.Clear;    
    DownloadPage.Add(Url,Hash);     
    DownloadPage.Show;
    try
      try
        DownloadPage.Download;
        Result := True;
      except
        if DownloadPage.AbortedByUser then
          Log('Aborted by user.')
        else
          SuppressibleMsgBox(AddPeriod(GetExceptionMessage),mbCriticalError,MB_OK,IDOK);
        Result := False;
      end;
    finally
      FileCopyLogged(ExpandConstant('{tmp}\'+FileName),ExpandConstant(Destination+'\'+FileName),False);      
    end;
    Result := True;     
end;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。