Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
Delphi 12 Athens
|
18. Jun 2002, 10: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 Lizbeth Ich bin nicht zurück, ich tue nur so
|
|
Zitat
|