Inno Setup Загрузка файла из местоположения на основе пользовательского ввода

Мне интересно, как отправить вклад от UserPage в idpAddFile чтобы скачать его с помощью Inno Download Plugin. После загрузки я хотел бы использовать этот zip и установить приложение.

На данный момент у меня есть это:

var
  UserPage: TInputQueryWizardPage;

procedure InitializeWizard;
begin
  {Page for input Version}
  UserPage := CreateInputQueryPage(wpWelcome,
    'Number of Version', 'example : 1.8.20',
    'Program will download your input');
  UserPage.Add('Version:', False);
  UserPage.Values[0] := GetPreviousData('Version', '1.8.20');

  {Download file from input}
  idpAddFile(
    '127.0.0.1/repository/GU/my-apps/app.zip/{input}/ia-client.zip-{input}.zip',
    ExpandConstant('{tmp}\{input}.zip}'));
  idpDownloadAfter(wpReady);
end;

спасибо за предложение и помощь

1 ответ

Решение

Позвоните idpAddFile только перед началом загрузки, из NextButtonClick(wpReady), когда вы уже знаете версию, и у пользователя больше нет шансов изменить ее:

function NextButtonClick(CurPageID: Integer): Boolean;
var
  Version: string;
  FileURL: string;
begin
  if CurPageID = wpReady then
  begin
    Version := UserPage.Values[0];
    FileURL := Format('http://www.example.com/path/%s/app-%0:s.zip', [Version]); 
    idpAddFile(FileURL, ExpandConstant(Format('{tmp}\app-%s.zip', [Version])));
  end;
  Result := True;
end;
Другие вопросы по тегам