Попросите пользователя изменить версию приложения и соответствующим образом изменить папку установки с помощью Inno Setup

#inno-setup

#inno-setup

Вопрос:

Я пытаюсь использовать Inno Setup для установки некоторых пользовательских оболочек для DCS. Я хотел бы спросить пользователя о версии установленных им контроллеров домена (и, возможно, сначала проверить реестр или путь к файлу, чтобы узнать, установлено ли более одной версии), а затем попросить пользователя выбрать ту, на которую они хотят ее установить.

Или, возможно, все из них.

Например, если установлены DCS, DCS Beta и DCS Steam, установите флажки для установки для всех из них или только для одного..

Или, если проще, просто радиальный выбор в начале.. Может ли кто-нибудь помочь с разделом кода Inno setup или посоветовать, как вы можете установить переменную из раздела кода?

Ответ №1:

Создайте пользовательскую страницу для выбора (например, с помощью CreateInputOptionPage ). Когда пользователь нажмет кнопку Next, соответствующим образом обновите каталог назначения.

 [Code]
var
  VersionSelectionPage: TInputOptionWizardPage;
  
procedure InitializeWizard();
begin
  VersionSelectionPage :=
    CreateInputOptionPage(wpInfoBefore, 'Version selection', '', '', True, False);
  VersionSelectionPage.Add('1.0');
  VersionSelectionPage.Add('2.0');
  VersionSelectionPage.Add('3.0');
  VersionSelectionPage.SelectedValueIndex := 0;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  Dir: string;
begin
  if CurPageID = VersionSelectionPage.ID then
  begin
    case VersionSelectionPage.SelectedValueIndex of
      0: Dir := ExpandConstant('{pf}My Program v1');
      1: Dir := ExpandConstant('{pf}My Program v2');
      2: Dir := ExpandConstant('{pf}My Program v3');
      else RaiseException('Unexpected selection');
    end;
    WizardForm.DirEdit.Text := Dir;
  end;
  Result := True;
end;