AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [XE5] Versionsinformation vs Dateiversion
Thema durchsuchen
Ansicht
Themen-Optionen

[XE5] Versionsinformation vs Dateiversion

Ein Thema von Kralle · begonnen am 1. Feb 2014 · letzter Beitrag vom 2. Feb 2014
 
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#1

[XE5] Versionsinformation vs Dateiversion

  Alt 1. Feb 2014, 11:36
Moin,

Unter Projekt/Optionen/Versionsinformationen steht
Produktversion: 1.0.0.0
Dateiversion: 1.0.0.0

In der Exe steht bei
Produktversion 1.0.0.0
Dateiversion: 1.0.5145.32946.

Wenn die Versionsinformationen mittel
Delphi-Quellcode:
function GetFileVersion(const FileName: String): String;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Funktion ermittelt die Versionsnummer einer Exe-Datei
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Quelle: http://www.delphi-library.de/topic_die+Version+einer+ExeDatei+ermitteln_15850,0.html
var
  VersionInfoSize, VersionInfoValueSize, Zero: DWord;
  VersionInfo, VersionInfoValue: Pointer;
begin
      { Ist Datei nicht vorhanden, dann Hinweis und raus aus Funktion ...}
  if not FileExists(FileName) then
  begin
    Result := '-1'; { alternativ auch 'File not found' oder sonstwas }
    Exit;
  end;

      { sonnst weiter. }
  Result := '';
  VersionInfoSize := GetFileVersionInfoSize(PChar(FileName), Zero);
  if VersionInfoSize = 0 then Exit;
      { Bei nicht genug Speicher wird EOutOfMemory-Exception ausgelöst }
  GetMem(VersionInfo, VersionInfoSize);
  try
    if GetFileVersionInfo(PChar(FileName), 0, VersionInfoSize, VersionInfo) and
      VerQueryValue(VersionInfo, '\{ root block }, VersionInfoValue,
      VersionInfoValueSize) and (0 <> LongInt(VersionInfoValueSize)) then
    begin
      with TVSFixedFileInfo(VersionInfoValue^) do
      begin
        Result := IntToStr(HiWord(dwFileVersionMS));
        Result := Result + '.' + IntToStr(LoWord(dwFileVersionMS));
        Result := Result + '.' + IntToStr(HiWord(dwFileVersionLS));
        Result := Result + '.' + IntToStr(LoWord(dwFileVersionLS));
      end; { with }
    end; { then }
  finally
    FreeMem(VersionInfo);
  end; { try }
end; { GetFileVersion }
ermittel, erhalte ich nur die 1.0.5145.32946.

Wie komme ich ich an den "richtigen" Wert (1.0.0.0)?
Wenn ich die obige Funktion debugge, taucht die 1.0.0.0 auch nicht darin auf.

Und woher kommt der "falsche" Wert (1.0.5145.32946) in der Exe.

Ich möchte die aktuelle Programmversion im Programm unter Info anzeigen.

Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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