Hallo,
diesen Code hab ich mal irgendwo gefunden (kann sein dass es auch diese CodeLib war)
Delphi-Quellcode:
type
TIntArray = array of Integer;
function GetProgramVersion(sFileName: String; var Version: TIntArray): Boolean;
//This function retrieves the version number included in an exe file specified
//with sFileName
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
begin
Result := True;
if (not FileExists(sFileName)) or (LowerCase(ExtractFileExt(sFileName)) <> '.exe') then
exit;
try
VerInfoSize := GetFileVersionInfoSize(PChar(sFileName), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(sFileName), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
SetLength(Version, 4);
with VerValue^ do
begin
Version[0] := dwFileVersionMS shr 16;
Version[1] := dwFileVersionMS and $FFFF;
Version[2] := dwFileVersionLS shr 16;
Version[3] := dwFileVersionLS and $FFFF;
end; //with VerValue^ do
FreeMem(VerInfo, VerInfoSize);
except
Result := False;
end; //try-except-end;
end; //function GetProgramVersion(sFileName: String; var Version: TIntArray): Boolean;
Du kannst den Code ja noch fuer eigene Verwendung umschreiben. Die Version steht dann im Integer-Array welches uebergeben wurde.
Greetz
alcaeus