Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateieigenschaften » Dateiversion ermitteln
Dateiversion ermitteln
Die folgende Funktion gibt die Version einer Datei als String zurück. Als Parameter muss der Pfad+Dateiname der Datei übergeben werden:
function GetFileVersion(Path: string): string; var lpVerInfo: pointer; rVerValue: PVSFixedFileInfo; dwInfoSize: cardinal; dwValueSize: cardinal; dwDummy: cardinal; lpstrPath: pchar; begin if Trim(Path) = EmptyStr then lpstrPath := pchar(ParamStr(0)) else lpstrPath := pchar(Path); dwInfoSize := GetFileVersionInfoSize(lpstrPath, dwDummy); if dwInfoSize = 0 then begin Result := 'No version specification'; Exit; end; GetMem(lpVerInfo, dwInfoSize); GetFileVersionInfo(lpstrPath, 0, dwInfoSize, lpVerInfo); VerQueryValue(lpVerInfo, '', pointer(rVerValue), dwValueSize); with rVerValue^ do begin Result := IntTostr(dwFileVersionMS shr 16); Result := Result + '.' + IntTostr(dwFileVersionMS and $FFFF); Result := Result + '.' + IntTostr(dwFileVersionLS shr 16); Result := Result + '.' + IntTostr(dwFileVersionLS and $FFFF); end; FreeMem(lpVerInfo, dwInfoSize); end; {function GetFileVersion() ...}
Aufgerufen werden kann die Funktion beispielsweise so:
procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetFileVersion('C:Datei.exe'); end;