A routine to extract the version of the running app:
function GetExeVersionStr: string;
var
Dummy: DWORD;
FileVerInfoSize: integer;
Buffer: PChar;
PFFI: PVSFixedFileInfo;
FFISize: DWORD;
begin
FileVerInfoSize := GetFileVersionInfoSize(PChar(Application.EXEName), Dummy);
if FileVerInfoSize = 0 then
begin
Result := '';
Exit;
end;
GetMem(Buffer, FileVerInfoSize);
try
GetFileVersionInfo(PChar(Application.EXEName), 0,
FileVerInfoSize, Buffer);
VerQueryValue(Buffer, '\', pointer(PFFI), FFISize);
Result := Format('%d.%d.%d build %d',
[HiWord(PFFI^.dwFileVersionMS),
LoWord(PFFI^.dwFileVersionMS),
HiWord(PFFI^.dwFileVersionLS),
LoWord(PFFI^.dwFileVersionLS)]);
finally
FreeMem(Buffer, FileVerInfoSize);
end;
end;
An extended version for getting version info from another file:
function GetExeVersionStrEx(Filename: String): TVersion;
var
Dummy: DWORD;
FileVerInfoSize: integer;
Buffer: PChar;
PFFI: PVSFixedFileInfo;
FFISize: DWORD;
begin
Result.Major := 0 ;
Result.Minor := 0 ;
Result.Incr := 0 ;
Result.Build := 0 ;
if FileExists(Filename) then
begin
FileVerInfoSize := GetFileVersionInfoSize(PChar(Filename), Dummy);
if FileVerInfoSize = 0 then
Exit;
GetMem(Buffer, FileVerInfoSize);
try
GetFileVersionInfo(PChar(Filename), 0,
FileVerInfoSize, Buffer);
VerQueryValue(Buffer, '\', pointer(PFFI), FFISize);
Result.Major := HiWord(PFFI^.dwFileVersionMS) ;
Result.Minor := LoWord(PFFI^.dwFileVersionMS) ;
Result.Incr := HiWord(PFFI^.dwFileVersionLS) ;
Result.Build := LoWord(PFFI^.dwFileVersionLS) ;
Result.Version := Format('%d.%d.%d build %d', [Result.Major,
Result.Minor, Result.Incr,
Result.Build])
finally
FreeMem(Buffer, FileVerInfoSize);
end;
end ;
end;
Cheers,
Laurence Bevan
Master Business Systems Ltd
PO Box 467
Feilding 5600
Phone 027-228-8331
Email [EMAIL PROTECTED]
Web http://www.master.co.nz
----- Original Message -----
From: Rohit Gupta
To: NZ Borland Developers Group - Delphi List <[email protected]>
Sent: Mon, 08 May 2006 10:54:12 +1200
Subject: [DUG] VersionInfo
Is there an easy way for an application to obtain the version info from
1. Its own resource
2. Some other app/dll
_______________________________________________
Delphi mailing list
[email protected]
http://ns3.123.co.nz/mailman/listinfo/delphi
_______________________________________________
Delphi mailing list
[email protected]
http://ns3.123.co.nz/mailman/listinfo/delphi