Inno Setup:使用CLI标志禁用postinstall复选框

时间:2012-02-02 14:39:18

标签: inno-setup

我目前在Inno安装脚本的[Run]部分中有以下内容

Filename: {app}\App.exe; Description: {cm:LaunchProgram,App}; Flags: nowait postinstall

对于99.9%的情况,这是完美的,默认选中复选框,应用程序在静默安装(我们用于自动更新)之后启动,但总有一种情况不是。

基本上,我需要一种方法来在静默安装中从命令行禁用/取消选中该选项。我尝试过使用“任务和组件”,但是这些添加了额外的页面和复选框,我并不想出现这些页面和复选框。

如果有一种方法可以阻止正常安装期间出现的复选框,那么任务似乎是目前最简单的方法,否则对任何想法开放!

干杯。

1 个答案:

答案 0 :(得分:2)

我不确定禁用或取消选中它,但您可以通过使用“Check”参数调用脚本函数从上一页中完全删除它(或不删除它)。

[Run]
Filename: {app}\App.exe; Description: {cm:LaunchProgram,App}; Flags: nowait postinstall; Check: NoRunSwitch


[Code]
function NoRunSwitch: boolean;
var
  i: integer;
begin
  // Return TRUE to show the checkbox on the final page, return FALSE to hide it.
  Result := True; // In case there are no parameters
  for i := 1 to ParamCount do
  begin
    // Tweak the switch parsing to suit your needs here
    Result := not (UpperCase(ParamStr(i)) = '/NORUN');
    if not Result then break;
  end;
end;

编辑:重新阅读你的消息后,我不确定你可能会问所有静默安装怎么做?如果您不想在任何静默安装期间发生这种情况,您可以使用“skipifsilent”标志。如果你的意思是静默安装只是条件的一部分,你可以使用我上面描述的Check方法,你可以在check函数中使用'WizardSilent'来知道安装程序是否以静默模式执行。