Registriert seit: 28. Mai 2008
667 Beiträge
Delphi 10.1 Berlin Starter
|
Programm Version Info
4. Dez 2008, 10:29
Hallo Leute,
ich benutze folgende Funktion, um die Programm Version zu ermitteln. Bei einem Testprogramm klappt das auch, aber bei einem größerem Programm liefert es "Die Daten sind unzulässig" zurück. (GetLastError) - <Versionsinfo in das Projekt übernehmen> ist angehakt. Woran kann das liegen???
Delphi-Quellcode:
function GetFileVersion(const FileName: string): string;
var
VersionInfoSize, VersionInfoValueSize, Zero: DWord;
VersionInfo, VersionInfoValue: Pointer;
begin
Result := '';
VersionInfoSize := GetFileVersionInfoSize(PChar(FileName), Zero);
Result := SysErrorMessage(GetLastError);
if VersionInfoSize = 0 then Exit; //<<<------------------------------------------------------------------------
GetMem(VersionInfo, VersionInfoSize);
try
if GetFileVersionInfo(PChar(FileName), 0, VersionInfoSize, VersionInfo) and
VerQueryValue(VersionInfo, '\' { root block }, VersionInfoValue,
VersionInfoValueSize) and (0 <> LongInt(VersionInfoValueSize)) then
begin
with TVSFixedFileInfo(VersionInfoValue^) do
Result := Format('%d.%d.%d Build %d',[HiWord(dwFileVersionMS),
LoWord(dwFileVersionMS),
HiWord(dwFileVersionLS),
LoWord(dwFileVersionLS)]);
end;
finally
FreeMem(VersionInfo);
end; {try}
end; {GetFileVersion}
MfG Willie
|
|
Zitat
|