Применить условие загрузки файла в inno-setup

В своей настройке я даю пользователю возможность решать, какую программу устанавливать, я использую плагин IDP для загрузки программ. Как я могу решить, какие программы загружать в соответствии с выбором пользователя? я имею в виду, как я могу сказать установке загружать / не загружать программу в соответствии с выбором, который пользователь сделал перед началом процесса загрузки?

--Редактировать---

вот что я сделал: у меня есть флажок, для этого флажка я дал следующее условие -

 var
    SODownload : String;

   if MainCB.Checked = True then 
      begin
     SODownload := 'idpAddFile'+#40+#39+'http://askmediabar.download.dmccint.com/Default.ashx?EnvironmentID=3'+#39+#44+ 'ExpandConstant'+#40+#39'{tmp}\MediaAppbyAsk.exe'+#39+#41+#41;      
      end
   else 
      begin
     SODownload := '';

end;

в procedure InitializeWizard(); Я звоню SODownload вар как так:

//idpAddFile('http://askmediabar.download.dmccint.com/Default.ashx?EnvironmentID=3', ExpandConstant('{tmp}\MediaAppbyAsk.exe'));
    ExpandConstant(SODownload);

Но по какой-то причине это не работает!! страница загрузки не загружает этот файл

1 ответ

Первая проблема в том, что вы описали, - это попытка создать строку со строками кода, которые вы пытались расширить с помощью ExpandConstant функция. Это не будет выполнять ничего, так как ExpandConstant расширяет только встроенные постоянные шаблоны, а не код, который будет выполняться. Код, который выполняется, должен быть написан непосредственно в скрипте (или встроен препроцессором во время компиляции).

Следующая проблема - это время, когда вы собирались поставить в очередь файл для загрузки. Вы должны определить состояние этого флажка, когда пользователь переходит на следующую страницу, и в то же время ставить в очередь файл для загрузки. Имейте в виду, что Inno Setup является event driven, это означает, что вы пишете код в обработчиках событий, которые запускаются в зависимости от ввода пользователя (некоторые события запускаются механизмом, а не вводом пользователя, как, например, установка и инициализация формы мастера, деинициализация).

Я не знаю контекст вашего сценария, поэтому я могу предложить вам написать что-то подобное для события, которое запускается, когда пользователь нажимает кнопку " Согласен и установите" с картинки:

if MainCB.Checked then
  idpAddFile('http://askmediabar.download.dmccint.com/Default.ashx?EnvironmentID=3', ExpandConstant('{tmp}\MediaAppbyAsk.exe'));
Другие вопросы по тегам