加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

inno-setup – 在Inno Setup中传递条件参数

发布时间:2020-12-15 09:36:38 所属栏目:大数据 来源:网络整理
导读:我是Inno Setup的新手,我已经阅读了文档.现在我知道Inno Setup可以接受不同的/自定义参数,并且可以通过Pascal脚本进行处理.但问题是,我不知道如何用Pascal写. 我希望我能得到关于编码的帮助. 我想将/ NOSTART参数传递给我的安装文件,该文件告诉安装程序禁用(
我是Inno Setup的新手,我已经阅读了文档.现在我知道Inno Setup可以接受不同的/自定义参数,并且可以通过Pascal脚本进行处理.但问题是,我不知道如何用Pascal写.

我希望我能得到关于编码的帮助.

我想将/ NOSTART参数传递给我的安装文件,该文件告诉安装程序禁用(取消选中)“启动”上的复选标记,如果未提供/ NOSTART,它将启用(选中)复选标记“启动“

或者,如果可能的话,不需要启动页面,并通过代码执行所有操作.

解决方法

因为你不能强制修改节条目的标志并且直接访问RunList将是一个非常脏的解决方法,我正在使用这两个 postinstall条目,而一个没有指定 unchecked标志,第二个有.因此,第一个条目表示选中的启动复选框,第二个条目表示未选中的启动复选框.使用哪一个是由 Check参数函数控制的,其中检查命令行尾部是否包含/ NOSTART参数.

另外,我使用了一个更直接的函数来确定命令行尾中是否包含某个参数.它使用CompareText函数以不区分大小写的方式比较文本.如果要以区分大小写的方式比较参数文本,可以使用CompareStr函数替换它.这是脚本:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}My Program
OutputDir=userdocs:Inno Setup Examples Output

[Run]
Filename: "calc.exe"; Description: "Launch calculator"; 
    Flags: postinstall nowait skipifsilent; Check: LaunchChecked
Filename: "calc.exe"; Description: "Launch calculator"; 
    Flags: postinstall nowait skipifsilent unchecked; Check: not LaunchChecked
[Code]
function CmdLineParamExists(const Value: string): Boolean;
var
  I: Integer;  
begin
  Result := False;
  for I := 1 to ParamCount do
    if CompareText(ParamStr(I),Value) = 0 then
    begin
      Result := True;
      Exit;
    end;
end;

function LaunchChecked: Boolean;
begin
  Result := not CmdLineParamExists('/NOSTART');
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读