Einzelnen Beitrag anzeigen

Exceeder

Registriert seit: 29. Mai 2006
24 Beiträge
 
#1

Versionsinformationen von EXE-Dateien synchronisieren

  Alt 4. Mai 2009, 12:43
Hallo,

mit einer Funktion wie der folgenden kann man ja die Versionsinformationen einer EXE oder DLL auslesen:

Delphi-Quellcode:
function ReadVersionInfo(const Filename: string): string;
type
  T2Words = record
    case Boolean of
      True: (C: Cardinal);
      False: (Lo, Hi: Word);
  end;

var
  size: Cardinal;
  p, vs: Pointer;
  MS, LS: T2Words;

begin
  Result := '';
  size := GetFileVersionInfoSize(PChar(Filename), size);

  if size > 0 then
  begin
    GetMem(p, size);
    GetFileVersionInfo(PChar(Filename), 0, size, p);
    VerQueryValue(p, '\', vs, size);

    with TVSFixedFileInfo(vs^) do
    begin
      MS.C := dwFileVersionMS;
      LS.C := dwFileVersionLS;
      Result := Format('%d.%d.%d.%d', [MS.Hi, MS.Lo, LS.Hi, LS.Lo])
    end;

    FreeMem(p);
  end;
end;
Weiß jemand wie die Updateresource Funktion zu verwenden ist, um eben diese Werte in einer EXE-Datei wieder zu schreiben? Ich habe ehrlich gesagt keine Ahnung, wie ich die Funktion verwenden soll, um die Versionsinformationen zu schreiben. In der MSDN wird leider nur erklärt, wie man Dialogressourcen kopiert..

Ich habe dazu auch das folgende Thema gefunden: http://www.delphipraxis.net/internal...ct.php?t=53954 Leider wird die Lösung dort nicht publiziert.

Hintergrund ist folgender: Ich habe mehrere EXE-Dateien welche zum Programm gehören. Nun möchte ich die Versionsinformationen entsprechend Synchronisieren, damit mein Programm nach außen geschlossen unter der gleichen Versionsnummer und Buildnummer auftritt. Dazu wäre natürlich ein Tool recht praktisch, welche auf Knopfdruck die Versionsinfos updated. Any Ideas?

Exceeder
  Mit Zitat antworten Zitat