【问题标题】:How to get versions of files (exe's and dll's) which are included to Inno Setup installer exe file?如何获取包含在 Inno Setup 安装程序 exe 文件中的文件版本(exe 和 dll)?
【发布时间】:2015-04-10 07:40:49
【问题描述】:

和主题一样,有可能吗?而且,如果参数(例如传递给 exe 文件的参数)设置为 true,我想在安装程序的一页上显示它们。

我知道如何显示一些页面:

if dev then
    PageWersjePlikow :=
        CreateOutputMsgMemoPage(
            1, 'Wersje plików zawarte w     instalatorze',
            'Lista plików niewidoczna dla klienta',
            'Pliki:', 'TU WPISAĆ WERSJE PLIKÓW');

我有一些想法,但每个想法都是基于在编译 exe 安装程序时构建的 .txt 文件,然后从中读取...

【问题讨论】:

    标签: installation inno-setup pascalscript fileversioninfo


    【解决方案1】:

    使用GetVersionNumbersGetVersionNumbersString 支持函数。

    GetVersionNumbersStringMajor.Minor.Rev.Build 格式返回版本。

    如果您需要不同的格式,则需要使用GetVersionNumbers 并按照您需要的方式格式化版本组件(如Major.Minor.Rev):

    function MyGetVersionNumbersString(
      const Filename: String; var Version: String): Boolean;
    var
      MS, LS: Cardinal;
      Major, Minor, Rev, Build: Cardinal;
    begin
      Result := GetVersionNumbers(Filename, MS, LS);
    
      if Result then
      begin
        Major := MS shr 16;
        Minor := MS and $FFFF;
        Rev := LS shr 16;
        Build := LS and $FFFF;
        Version := Format('%d.%d.%d', [Major, Minor, Rev]);
      end
    end;
    

    【讨论】:

      【解决方案2】:

      谢谢!我找到了检查 cmd 参数的解决方案:

      function GetParam: Boolean;
      var
         param: string;
         i: integer;
      begin
         Result := False;
         for i:= 0 to ParamCount do
         begin   
            param := ParamStr(i);
            if (param = '-p') then
            begin
               Result := True;
               break;
            end;      
         end;   
      end; 
      

      使用我的功能,我可以使用“-p”参数运行我的安装程序,它会显示我的页面,其中包含我想要的信息:-)

      【讨论】:

      • 您不需要检查ParamStr(0),因为有应用程序的完整路径。此外,如果仅使用一次,则不需要该 param 变量。并且最好从函数中 Exit 而不是 Break 循环(它更好地解释了意图)。最后,使用名称 GetParam 来检查(区分大小写)是否传递了 -p 命令行参数的函数是错误的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多