获取软件版本号


{-------------------------------------------------------------------------------
  过程名:    GetBuildInfo
  过程描述:  获取软件版本号
  作者:      LYK
  日期:      2018.11.02
  参数:      无
  返回值:    string
-------------------------------------------------------------------------------}
function GetBuildInfo: string;
var
  verinfosize : DWORD;
  verinfo : pointer;
  vervaluesize : dword;
  vervalue : pvsfixedfileinfo;
  dummy : dword;
  v1,v2,v3,v4 : word;
begin
  verinfosize := GetFileVersionInfoSize(pchar(ParamStr(0)),dummy);
  if verinfosize = 0 then
  begin
    dummy := GetLastError;
    result := '0.0.0.0';
  end;
  GetMem(verinfo,verinfosize);
  GetFileVersionInfo(pchar(paramstr(0)),0,verinfosize,verinfo);
  VerQueryValue(verinfo,'\',pointer(vervalue),vervaluesize);
  with vervalue^ do
  begin
    v1 := dwfileversionms shr 16;
    v2 := dwfileversionms and $ffff;
    v3 := dwfileversionls shr 16;
    v4 := dwfileversionls and $ffff;
  end;
  result := inttostr(v1) + '.' + inttostr(v2) + '.' + inttostr(v3) + '.' + inttostr(v4);
  FreeMem(verinfo,verinfosize);
end;

猜你喜欢

转载自blog.csdn.net/liang08114/article/details/83650769
今日推荐