Я хочу, чтобы пользователи могли просматривать и извлекать ZIP-файлы в определенном месте.
Требования / шаги:
- Показать страницу приветствия
- Следующая кнопка просмотра для выбора каталога установки (
DisableDirPage=no
)
- Следующая кнопка просмотра для выбора zip-файла (
JDK
)
- Извлечь
JDK
zip-файл, выбранный на шаге 3 в месте, выбранном на шаге 2, это означает, что JDK
должен быть извлечен в установочном каталоге, который пользователь выберет на шаге 2
Проблемы с моим кодом:
- После первого шага мой код сразу переходит к третьему шагу, а затем переходит ко второму.
- Код для извлечения zip не работает, если я передаю имя метода в качестве параметра. Если я передаю жестко запрограммированное значение местоположения, оно работает. Я не знаю паскаль, и это в основном похоже на синтаксис.
[SETUP]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
DisableProgramGroupPage=no
DisableWelcomePage=no
DisableDirPage=no
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output
[Files]
Source: "{code:GetLicensePath}"; DestDir: "{app}"; Flags: external
Source: "7za.exe"; DestDir: "D:\authorized\Builds\Solo\"; Flags: deleteafterinstall;
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
[Run]
Filename: D:\authorized\Builds\Solo\7za.exe; Parameters: "x ""{{Code:GetZipPath}}"" -o""{app}\"" * -r -aoa"; Flags: runhidden runascurrentuser;
[Код]
var
Page: TInputFileWizardPage;
DataDir:String;
procedure InitializeWizard();
begin
Page :=
CreateInputFilePage(
wpWelcome,
'Select Zip File Location',
'Where is your Zip file located?',
'Select where Zip file is located, then click Next.');
Page.Add(
'Location of Zip file:',
'*.7z|*.rar|All files|*.*',
'.zip');
// Set initial value (optional)
Page.Values[0] := ExpandConstant('{%USERPROFILE}\Downloads\setup.7z');
;
end;
function GetZipPath(Param: string): string;
begin
DataDir := Page.Values[0];
end;
Не могли бы вы помочь мне, пожалуйста?