如何获取一个可执行文件的版本号?

解决方案 »

  1.   

    function GetFileVersion(fn: string; var ma, mi, r ,b: integer):boolean;//得到本程序的版本号
    var     
      buf, p: pChar;
      sver: ^VS_FIXEDFILEINFO ;
      i: LongWord;
    begin
      i:= GetFileVersionInfoSize(pchar(fn), i);
      new(sver);
      p:= pchar(sver);
      GetMem(buf, i);
      ZeroMemory(buf, i);
      result:= false;
      if GetFileVersionInfo(pchar(fn), 0, 4096, pointer(buf)) then
        if VerQueryValue(buf, '\', pointer(sver), i) then begin
          ma:= sVer^.dwFileVersionMS shr 16;
          mi:= sver^.dwFileVersionMS and $0000ffff;
          r:= sver^.dwFileVersionLS shr 16;
          b:= sver^.dwFileVersionLS and $0000ffff;
          result:= true;
        end;
      Dispose(p);
      FreeMem(buf);
    end;