Delphi获取程序版本号

参考: http://www.delphitop.com/html/hanshu/4627.html


procedure GetVersionInfo(const FileName:string; var vs:string);
var VerInfoSize,VerValueSize,Dummy:DWORD;
    VerInfo: Pointer;
    VerValue: PVSFixedFileInfo;
    V1,V2,V3,V4:Word;
begin
  vs:='';
  if not FileExists(FileName) then exit;
  VerInfoSize:=GetFileVersionInfoSize(PChar(FileName),Dummy);
  if VerInfoSize=0 then exit;
  GetMem(VerInfo,VerInfoSize);
  if not GetFileVersionInfo(PChar(FileName),0,VerInfoSize,VerInfo) then exit;
  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;
    vs:=inttostr(v1)+'.'+inttostr(v2)+'.'+inttostr(v3)+'.'+inttostr(v4);
  end;
  FreeMem(VerInfo,VerInfoSize);
end;

 

经测试,管用!👍

posted @ 2022-10-28 09:30  MasterQi  阅读(135)  评论(0编辑  收藏  举报