【问题标题】:Inno Setup: Disable postinstall checkbox with CLI flagsInno Setup:使用 CLI 标志禁用安装后复选框
【发布时间】:2012-02-02 23:42:23
【问题描述】:

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

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

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

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

如果有办法阻止在正常安装期间出现的复选框,任务似乎是迄今为止最简单的方法,否则可以接受任何想法!

干杯。

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

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

    [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”标志。如果您的意思是静默安装只是条件的一部分,您可以使用我上面描述的检查方法,并且您可以在检查功能中使用“WizardSilent”来了解安装程序是否正在静默模式下执行。

    【讨论】:

    • 布拉德,非常感谢!正是我所追求的!为了向其他人澄清,我们希望它在安装程序运行的任何情况下自动启动,但在选择的一对(如无人值守安装)中,我们不希望它自动启动,因此需要标志。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    相关资源
    最近更新 更多