(Gast)
n/a Beiträge
|
AW: Delphi 10.2 Tokyo Starter
26. Jul 2017, 21:59
Versuchs mal hiermit
Delphi-Quellcode:
function getVersionInfo(FileName, InfoStr: string; const withBuild: Boolean = False): string;
var
VersionInfoSize, VerInfoSize, GetInfoSizeJunk: DWORD;
VersionInfo, Translation, InfoPointer: Pointer;
VersionValue, tmpRes: string;
begin
Result := '';
VerInfoSize := GetFileVersionInfoSize(PChar(FileName), GetInfoSizeJunk);
if VerInfoSize > 0 then
begin
GetMem(VersionInfo, VerInfoSize);
try
GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, VersionInfo);
VerQueryValue(VersionInfo, '\\VarFileInfo\\Translation', Translation, VerInfoSize);
VersionValue := '\\StringFileInfo\\' + IntToHex(LoWord(Integer(Translation^)), 4) + IntToHex(HiWord(Integer(Translation^)), 4) + '\\';
VersionInfoSize := 0;
if InfoStr = 'Build' then
begin
VerQueryValue(VersionInfo, PChar(VersionValue + 'FileVersion'), InfoPointer, VersionInfoSize);
tmpRes := PChar(InfoPointer);
tmpRes := Copy(tmpRes, LastDelimiter('.', tmpRes) + 1, Length(tmpRes));
end
else
begin
VerQueryValue(VersionInfo, PChar(VersionValue + InfoStr), InfoPointer, VersionInfoSize);
tmpRes := PChar(InfoPointer);
if (InfoStr = 'FileVersion') and (not withBuild) then
tmpRes := Copy(tmpRes, 1, LastDelimiter('.', tmpRes) - 1);
end;
Result := tmpRes;
finally
FreeMem(VersionInfo);
end;
end;
end;
... := getVersionInfo(ParamStr(0), 'FileVersion');
... := getVersionInfo(ParamStr(0), 'LegalCopyright');
... := getVersionInfo(ParamStr(0), 'Build');
Geht sicher schöner. Könnt ihr ja vielleicht schöner machen, ich wüsste nicht wie. Aber es funktioniert perfekt von Windows XP bis Windows 10.
|
|
Zitat
|