我想知道,如果有一种方法可以为基于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
答案 0 :(得分: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
,所以这可能不适合您。 < / p>
实际上,据我所知,您有与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 directive based on custom checkbox value中所示。