Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
Delphi XE2 Professional
|
Re: Version einer Datei auslesen
5. Sep 2004, 12:39
hallo
ich bin mal ein wenig durch das i-net gesurft und hab folgenden Code gefunden zum auslesen der Versions-Nr. einer Datei:
Code:
function GetBuildInfo(const AFilename:String; var V1,V2,V3,V4:Word):Boolean;
var
VerInfoSize : Integer;
VerValueSize : DWord;
Dummy : DWord;
VerInfo : Pointer;
VerValue : PVSFixedFileInfo;
begin
VerInfoSize:=GetFileVersionInfoSize(PChar(AFilename),Dummy);
Result:=False;
if VerInfoSize<>0 then begin
GetMem(VerInfo,VerInfoSize);
try
if GetFileVersionInfo(PChar(AFilename),0,VerInfoSize,VerInfo) then begin
if VerQueryValue(VerInfo,'\',Pointer(VerValue),VerValueSize) then
with VerValue^ do begin
V1:=dwFileVersionMS shr 16;
V2:=dwFileVersionMS and $FFFF;
V3:=dwFileVersionLS shr 16;
V4:=dwFileVersionLS and $FFFF;
end;
Result:=True;
end;
finally
FreeMem(VerInfo,VerInfoSize);
end;
end;
end;
ich hab den dann wie folgt umgeändert und als ausgabe nen String gebaut:
Code:
function GetFileVersion(const AFilename:String): String;
var
VerInfoSize : Integer;
VerValueSize : DWord;
Dummy : DWord;
VerInfo : Pointer;
VerValue : PVSFixedFileInfo;
begin
VerInfoSize:=GetFileVersionInfoSize(PChar(AFilename),Dummy);
Result := '';
If VerInfoSize <> 0 then
begin
GetMem(VerInfo,VerInfoSize);
try
If GetFileVersionInfo(PChar(AFilename), 0, VerInfoSize,VerInfo) then
begin
If VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize) then
with VerValue^ do
begin
Result := Result + IntToStr(dwFileVersionMS shr 16) + '.';
Result := Result + IntToStr(dwFileVersionMS and $FFFF) + '.';
Result := Result + IntToStr(dwFileVersionLS shr 16) + '.';
Result := Result + IntToStr(dwFileVersionLS and $FFFF);
end;
end;
finally
FreeMem(VerInfo,VerInfoSize);
end;
end;
end;
mfg
Helmi
|
|
Zitat
|