Versionsinformation aus Exe auslesen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Versionsinformation aus Exe auslesen

Beitrag von alexander »

Hi @all,

wie kann ich die Versionsinformationen aus einer Exe-Datei auslesen? (Unter Turbo delphi habe ich das mithilfe den Jedi Tools (genauer: JclFileUtils)).

Gruß Alexander

Hroudtwolf
Beiträge: 14
Registriert: Sa 26. Jan 2008, 17:36
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Hroudtwolf »

Servus,

Da du von Exe-Dateien sprichst nehme ich an, du brauchst ne Win32-Lösung.
Unter Windows kannst du die Infos per GetFileVersionInfo und VerQueryValue ermitteln.
http://msdn2.microsoft.com/en-us/library/ms647003(VS.85" onclick="window.open(this.href);return false;).aspx

MfG

Wolf

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

cool danke....

ehmmm und wie kann ich die Infos aus mit lazarus erstellten Binaries (linux, macos, etc.) herauslesen? Geht das nur über entsprechende plattformabhängige Funktionen?

Oder gibt es da ein allgemeines GetFileVersionInfo von FP?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Nein unter Unix gibts keine Versionsinfos in Executables.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6777
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Plattformunabhänig geht es so, wie es Lazarus macht :-)

Siehe auch in der Datei lazarus\ide\aboutfrm.pas Zeile 67 und auch ab Zeile 104 fürs Datum
und die Datei lazarus\ide\version.inc

So könnte man sich auch SVN Versionsnummern hineinkompileren, wenn man sich die Mühe machen will.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich nehm dafür ummer 2 .inc files eines für die ervision eines für die version. Aus denen liest dann der Compiler, Installer und scripte um den installer zu baun die Versionen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

was ist eine ervision?

@af0815: Das ist ja interessant... hatte keine ahnung das es so geht..
Was ist diese inc Datei genau? Ein ressourcenstring? Wie lässt man den miteinkompilieren in die binary?
Machst das schon diese Zeile?

Code: Alles auswählen

const
  LazarusVersionStr= {$I version.inc};
Gruß Alexander

EDIT:

GEIL. COOL Das klappt da schon mit der einen zeile

Code: Alles auswählen

const
  LazarusVersionStr= {$I version.inc};
und dann

Code: Alles auswählen

ShowMessage(VersionStr);
Voll coooooool.

Das ist ja hundert mal einfacher als ressourcenstrings...... Lazarus ist coooool.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Eine inc datei wird einfach nur 1:1 an die stelle übernommen.
Also exact so wie include files in c. Es schaut für den Compiler dann aus als wäre der inhalt der $I Datei direkt in der Hauptdatei.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6777
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

@alexander Quelltextleser sind oft oberaffensupergeil
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Das ist mir klar, dass man das in der kompilierten version lesen kann... steht ja auch nix geheimes drin... (und ist ja auch bei ressourcen so, dass es einfach gelesen werden kann)

Oder was meintest du jetzt?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6777
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Das es ganz gut ist, sich bei Fragen auch die Quelltexte anzusehen. Besonders in hinblick auf Lösungen die losgelöst von Plattformen gut funktionieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten