如何获取包含在 Inno Setup 安装程序 exe 文件中的文件版本(exe 和 dll)?

How to get versions of files (exe's and dll's) which are included to Inno Setup installer exe file?

如题,有可能吗?而且,如果参数(例如传递给 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 文件,然后从中读取...

使用GetVersionNumbers or GetVersionNumbersString支持函数。

GetVersionNumbersString returns 格式的版本 Major.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;

谢谢!我找到了检查 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”参数,它会显示我的页面,其中包含我想要的信息:-)