Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
Delphi 11 Alexandria
|
18. Jun 2002, 09:16
Hier noch ein kurzes Beispiel zum Thema Versioninfos
Code:
function GetFileInfo(
var aInternalName, aFileVersion, aDepends: ShortString; FileName: AnsiString
): Boolean;
var
VersionInfoSize, VerInfoSize, GetInfoSizeJunk: DWORD;
VersionInfo, Translation, InfoPointer: Pointer;
VersionValue: AnsiString;
begin
Result := False;
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(LongInt(Translation^)), 4) +
IntToHex(HiWord(LongInt(Translation^)), 4) + '\\';
VersionInfoSize := 0;
VerQueryValue(
VersionInfo, PChar(VersionValue + 'InternalName'), InfoPointer,
VersionInfoSize
);
aInternalName := AnsiString(PChar(InfoPointer));
VerQueryValue(
VersionInfo, PChar(VersionValue + 'FileVersion'), InfoPointer,
VersionInfoSize
);
aFileVersion := AnsiString(PChar(InfoPointer));
if VerQueryValue(
VersionInfo, PChar(VersionValue + 'Depend'), InfoPointer,
VersionInfoSize
) then
aDepends := AnsiString(PChar(InfoPointer))
else
aDepends := '';
finally
FreeMem(VersionInfo);
end;
aInternalName := Trim(aInternalName);
aFileVersion := Trim(aFileVersion);
Result := (aInternalName <> '') and (aFileVersion <> '');
end;
end;
Vielleicht hilft es Dir weiter. Der Parameter aDepends kommt aus unserer Produktreihe und ist standardmäßig nicht vorhanden, gibt Dir aber das Beispiel für freie Versionsinformationen.
Daniel W. Ich bin nicht zurück, ich tue nur so
|
|
Zitat
|