unit VersionInfo; interface uses windows,sysutils; function GetVersionInfo(FileNameVar:string): string; implementation function GetVersionInfo(FileNameVar:string): string; var V1, // Major Version V2, // Minor Version V3, // Release V4: Word; // Build Number VerInfoSize, VerValueSize, Dummy : DWORD; VerInfo : Pointer; VerValue : PVSFixedFileInfo; begin VerInfoSize := GetFileVersionInfoSize(PChar(FileNameVar), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(FileNameVar), 0, VerInfoSize, VerInfo); if VerInfo=nil then begin result:='No Version Info'; exit; end; 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; end; Result := IntToStr(V1) + '.' + IntToStr(V2) + '.' + IntToStr(V3) + ' Build: ' + format('%.4d',[V4]); FreeMem(VerInfo, VerInfoSize); end; end.