Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Firebird Parallelbetrieb
5. Jan 2012, 18:58
Der ursprüngliche Code ist IIRC von tP, meinerseits nur modifiziert:
Delphi-Quellcode:
type
TVersion = record
dwHigh,
dwLow: DWORD;
end;
procedure GetFileVersion(const Filename: TFilename; out Version: TVersion);
var
lpVerInfo: pointer;
rVerValue: PVSFixedFileInfo;
dwInfoSize: cardinal;
dwValueSize: cardinal;
dwDummy: cardinal;
lpstrPath: pchar;
begin
lpstrPath := PChar(Filename);
dwInfoSize := GetFileVersionInfoSize(lpstrPath, dwDummy);
if dwInfoSize = 0 then
begin
Version.dwHigh := 0;
Version.dwLow := 0;
end
else
begin
GetMem(lpVerInfo, dwInfoSize);
try
GetFileVersionInfo(lpstrPath, 0, dwInfoSize, lpVerInfo);
VerQueryValue(lpVerInfo, '\', pointer(rVerValue), dwValueSize);
Version.dwHigh := rVerValue^.dwFileVersionMS;
Version.dwLow := rVerValue^.dwFileVersionLS;
finally
FreeMem(lpVerInfo, dwInfoSize);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Version: TVersion;
begin
//hartkodierter Dateiname kommt vom Testen
GetFileVersion('C:\Windows\System32\fbclient.dll', Version);
ShowMessage(Format('%d.%d.%d.%d', [Version.dwHigh shr 16,
Version.dwHigh and $0000FFFF, Version.dwLow shr 16, Version.dwLow and $0000FFFF]));
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|