inno-setup – 如何检查字符串是否包含给定的子字符串?

1、背景

我需要找出字符串是否包含一个给定的子字符串. 例如,如果我正在这样寻找一个字符串中的子字符串ABC:S := 'ABC String'; 我应该得到结果为真,而对于以下字符串我应该得到结果False:S := 'DEF String'; 如何检查一个字符串是否包含InnoSetup中的子字符串?

2、办法

Innosetup有一个Pos()函数,与Delphi完全一样.请参见

https://jrsoftware.org/ishelp/index.php?topic=scriptfunctions的支持功能参考

Prototype:

function Pos(SubStr, S: String): Integer;

Description:

Searches for Substr within S and returns an integer value that is the index of the first character of Substr within S.
If Substr is not found, Pos returns zero. The Pos function is case-sensitive.

实现

    Pos('2019',   RegeditValue222333);

if MsgBox('检测到WPS版本过低或没有安装,是否立即下载最新版?', mbConfirmation, MB_YESNO) = idYes then 
        begin      
          ShellExec('open', 'https://official-package.wpscdn.cn/wps/download/WPS_Setup_12302.exe', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode11111);
        //  MsgBox('请安装好指定的WPS软件后,再运行本安装包程序!',mbInformation,MB_OK); 
          Result := false; 
            Istoken2019 := false;
        end   
        else  
        begin   
          MsgBox('不下载指定的WPS软件,系统将无法运行,本安装程序即将退出!',mbInformation,MB_OK);
          Result := false; 
            Istoken2019 := false;
        end  


      end;    


      if Istoken2019 then begin
       if RegQueryStringValue(GetHKLM, 'SOFTWARE\Kingsoft\Office\6.0\Common','DisplayName',RegeditValue222333) then   begin  
       // MsgBox(RegeditValue222333, mbInformation, MB_OK);
      //  MsgBox(IntToStr(Pos('2019',   RegeditValue222333)), mbInformation, MB_OK);


        ResultCode2222333 :=   Pos('2019',   RegeditValue222333);




        if(ResultCode2222333>0) then
    begin
技术群:添加小编微信并备注进群
小编微信:mm1552923   公众号:dotNet编程大全
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Inno Setup来创建一个安装程序,该程序可以执行多个安装程序或可执行文件。以下是一个基本的操作流程: 1. 在Inno Setup脚本中定义您要安装的多个安装程序或可执行文件。 2. 在[Run]部分中添加每个要执行的安装程序或可执行文件的条目。您可以使用"Inno Setup Quiet"命令行参数来运行安装程序或可执行文件。 3. 您可以使用[Files]部分将要安装的多个安装程序或可执行文件复制到用户的计算机上。 4. 编译并生成您的安装程序。 5. 运行您的安装程序并按照提示完成安装。 以下是一个示例Inno Setup脚本,其中包含多个安装程序的条目: ```[Files] Source: "C:\Installers\Program1.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Installers\Program2.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Installers\Program3.exe"; DestDir: "{app}"; Flags: ignoreversion [Run] Filename: "{app}\Program1.exe"; Parameters: "/S"; WorkingDir: "{app}"; Flags: skipifdoesntexist Filename: "{app}\Program2.exe"; Parameters: "/S"; WorkingDir: "{app}"; Flags: skipifdoesntexist Filename: "{app}\Program3.exe"; Parameters: "/S"; WorkingDir: "{app}"; Flags: skipifdoesntexist``` 在此示例中,[Files]部分包含三个要安装的程序。在[Run]部分中,每个程序都有一个条目,指定要执行的程序的路径、命令行参数和工作目录。在这种情况下,所有的程序都使用"/S"参数来进行静默安装,以免用户看到安装过程中的提示信息。 当您编译并生成安装程序时,这些程序将被打包到您的安装程序中。在安装程序运行时,它将自动执行这些程序,并完成安装。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值