Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
Turbo Delphi für Win32
|
Versionsinformationen einer EXE- oder DLL-Datei abfragen
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
|
|
Zitat
|