Установите файлы, если параметр командной строки передается установщику на основе Inno Setup
Я хочу знать, если есть способ добавить некоторые параметры командной строки в установщик на основе Inno Setup для /VERYSILENT
режим, если, например, у меня есть тезисы проверок:
Source: "{app}\Portable-File.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Check: install1;
Source: "{app}\Installer-File.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Check: porta1;
И у меня есть эти строки на основе моих двух примеров проверок:
"MyProgram.exe" /VERYSILENT /install1 /EN
"MyProgram.exe" /VERYSILENT /porta1 /EN
1 ответ
Реализовать install1
а также porta1
функции как:
function HasCommandLineSwitch(Name: string): Boolean;
var
I: Integer;
begin
Result := False;
for I := 1 to ParamCount do
begin
if CompareText(ParamStr(I), '/' + Name) = 0 then
begin
Result := True;
Break;
end;
end;
end;
function install1: Boolean;
begin
Result := HasCommandLineSwitch('install1');
end;
function porta1: Boolean;
begin
Result := HasCommandLineSwitch('porta1');
end;
Вы действительно можете использовать HasCommandLineSwitch
прямо в Check
параметр:
[Files]
Source: "Portable-File.exe"; DestDir: "{app}"; Check: HasCommandLineSwitch('install1')
Source: "Installer-File.exe"; DestDir: "{app}"; Check: HasCommandLineSwitch('porta1')
Хотя я предполагаю, что ваш install1
а также porta1
функция на самом деле будет делать больше, чем просто вызов HasCommandLineSwitch
, так что это, вероятно, не относится к вам.
На самом деле, насколько я знаю, у вас есть флажки, которые соответствуют install1
а также porta1
То, что вы действительно хотите сделать, это установить эти флажки при запуске установщика, если указаны переключатели. Таким образом, вы можете использовать /install1
а также /porta1
установить значения по умолчанию, даже если не используется в сочетании с /verysilent
, И это все еще будет работать даже в /verysilent
более того, даже если пользователь фактически никогда не увидит флажки (они все еще присутствуют, даже если они не видны)
install1 := TNewRadioButton.Create(WizardForm);
install1.Checked := HasCommandLineSwitch('install1');
porta1 := TNewRadioButton.Create(WizardForm);
porta1.Checked := HasCommandLineSwitch('porta1');
И вы держите свой install1
а также porta1
функция для возврата состояния флажков, как видно в директиве Inno Setup Set Uninstallable, основанной на пользовательском значении флажка.