Thema: Delphi Versionsinfo?

Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4
  Alt 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
  Mit Zitat antworten Zitat