On windows
LectureVersion(paramstr(0))
function LectureVersion (chemin : String) : String;
var
VersionL,Taille : DWord;
VersionPC,Buffer : PChar;
begin
Result := '';
Taille := GetFileVersionInfoSize(PChar(chemin), Taille);
if Taille > 0 then
try
Buffer := AllocMem(Taille);
GetFileVersionInfo(PChar(chemin),0,Taille,Buffer);
if VerQueryValue(Buffer,PChar('\StringFileInfo\041504B0\FileVersion'),Pointer(VersionPC),VersionL) then
Result := VersionPC;
finally
FreeMem(Buffer,Taille);
end;
end;