Einzelnen Beitrag anzeigen

Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Versionsinformationen einer EXE- oder DLL-Datei abfragen

  Alt 27. Jul 2006, 20:16
Hallo!

Habe hier in der DP mal vor längerer Zeit diesen Code gefunden, weiß aber leider nicht mehr von wem dieser ist. Damit kann man die Versionsinformation von EXE- oder DLL-Dateien auslesen. Habe diesen Code etwas angepasst:

Delphi-Quellcode:
uses
  Windows;

type
  // 1: Major, 2: Minor, 3: Release, 4: Build
  TFileVersion = array [1..4] of Smallint;

function GetVersion(FileName: string): TFileVersion;
var
  VerInfoSize, VerValueSize, Dummy: DWord;
  VerInfo: Pointer;
  VerValue: PVSFixedFileInfo;
begin
  // Länge der Dateiinformationen bekommen.
  VerInfoSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
  // Speicherplatz reservieren.
  GetMem(VerInfo, VerInfoSize);
  // Dateiinformationen selektieren.
  GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, VerInfo);
  // Prüfen ob Dateiinformationen vorhanden
  if VerInfo <> nil then
  begin
    // Dateiinformationen auslesen.
    VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
    // Version auslesen und zurückgeben.
    with VerValue^ do
    begin
      // Major
      Result[1] := dwFileVersionMS shr 16;
      // Minor
      Result[2] := dwFileVersionMS and $FFFF;
      // Release
      Result[3] := dwFileVersionLS shr 16;
      // Build
      Result[4] := dwFileVersionLS and $FFFF;
    end;
  end;
  // Speicher freigeben (Dateiinformationen).
  FreeMem(VerInfo, VerInfoSize);
end;
Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat