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