works for Windows, not yet rewritten for LINUX.

function ReadVersionInfo(const sProgram: string; Out vv: PTVersion) :Boolean;
var
  Info:       PVSFixedFileInfo;
  InfoSize:   Cardinal;
  nHwnd:      DWORD;
  BufferSize: DWORD;
  Buffer:     Pointer;
begin
  ZeroMemory(Info, SizeOF(PVSFixedFileInfo));
  vv := new(PTVersion);
  InfoSize := 0;
  nHwnd := 0;
  with vv^ do begin
    Major:= -1;
    Minor := 0;
    Release := 0;
    Build := 0;
  end;
  Result := False; //no version info at all in the file
BufferSize := GetFileVersionInfoSize(pchar(sProgram), nHWnd); {Get buffer size}
  if BufferSize <> 0 then begin //if zero, there is no version info
    Buffer := nil;
    ReAllocMem(Buffer, BufferSize+1);
    //GetMem( Buffer, BufferSize); //allocate buffer memory
    try
if GetFileVersionInfo(PChar(sProgram),nHWnd,BufferSize,Buffer) then begin // got version info if VerQueryValue(Buffer, PChar('\'), Pointer(Info), InfoSize) then begin //got root block version information
          with vv^ do begin
            Major := HiWord(Info^.dwFileVersionMS); //extract major version
            Minor := LoWord(Info^.dwFileVersionMS); //extract minor version
Release := HiWord(Info^.dwFileVersionLS); //extract release version
            Build := LoWord(Info^.dwFileVersionLS); //extract build version
          end;
          Result := True;
        end
      end
    finally
      ReAllocMem(Buffer, 0);
      //FreeMem(Buffer, BufferSize); //release buffer memory
    end
  end;
end;


Le 07/03/2012 15:35, Kjow a écrit :
Hi all,

I need to get the build number of an external program, but I don't
know how to do.

"vinfo.pas" method
(http://lists.lazarus.freepascal.org/pipermail/lazarus/2010-July/054335.html)
works very well for the program itself... but how can I read the build
number of an other file exe?

Thank you!
Kjow

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to