Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Versionsinfo? (https://www.delphipraxis.net/189-versionsinfo.html)

Privateer3000 17. Jun 2002 23:22


Versionsinfo?
 
Hallo Leuts,

in der Delphi-IDE gibts doch unter Projekte/Optionen
die möglickeit die Version "mit hoch zuzählen", also bei jeder neu Compilierung.Und noch einige andere Dinge.Kann man diese Infos irgendwo weiterverarbeiten oder sind sie nur unter diesen Punkten sichtbar?

Grüsse

MathiasSimmack 18. Jun 2002 06:01

Du kannst diesen Versionsblock auslesen und z.B. innerhalb einer About-Box anzeigen lassen. Schau dir dazu mal die API-Funktionen GetFileVersionInfoSize und GetFileVersionInfo an.

Außerdem, aber das weißt du bestimmt, stehen diese Werte auch in den Datei-Eigenschaften, z.B. im Explorer (Rechtsklick usw.) - unter XP werden die Versionsinfos zum Teil gleich mit angezeigt; je nach Ansicht.

Privateer3000 18. Jun 2002 07:52

Siehste ! GetFileVersionInfo.... kannte ich noch nicht!

Wieder was dazugelernt

danke!

sakura 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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz