AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Versionsinformationen (VSFixedFileInfo) per Stream anfügen
Thema durchsuchen
Ansicht
Themen-Optionen

Versionsinformationen (VSFixedFileInfo) per Stream anfügen

Ein Thema von Mazel · begonnen am 16. Mai 2009 · letzter Beitrag vom 16. Mai 2009
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Versionsinformationen (VSFixedFileInfo) per Stream anfügen

  Alt 16. Mai 2009, 19:53
Hallo,

ich habe schon vor langer Zeit probiert an eine *.exe Datei eine Version Resource mittels UpdateResource hinzuzufügen. Leider kam es nie zum Erfolg und somit hatte ich das Projekt auf Eis gelegt. Nun bin ich wieder darauf gestoßen und habe durch andere Beiträge gelesen dass TStream scheinbar auch dafür zum Einsatz kommen kann. Nun habe ich gesucht aber speziell für diese Resourcen scheint es noch kein Beitrag zu geben, weshalb ich hiermit Fragen möchte, wie ich diese Resource einer *.exe hizufügen kann.
Es geht darum, dass eine *.exe Datei die keine Versionsinformationen besitz, welche bekommen soll, dabei soll die Dateiversion, Produktversion, Hersteller, Copyright usw. geschrieben werden.
Dabei hatte ich folgende Variante probiert, mit der Absicht, die exe in ein Stream zu laden, diesen Stream in einen MemoryStream zu packen und dort die Versionsinformation anzufügen und am Ende eine neue Datei zu erstellen. Die Datei wird geschrieben nur leider ohne Versionsinformation. Das ist natürlich nur ein Ansatz da ich nicht weis was noch alles benötigt wird, damit die Resource am Ende richtig erkannt wird in bspw. einem ResourceHacker.
Delphi-Quellcode:
procedure WriteResource;
var
  len : word;
  vsFixedFileInfo : TVSFixedFileInfo;
  f : TFileStream;
  m : TMemoryStream;
begin
  f := TFileStream.Create(Form1.Edit1.Text, fmOpenRead);
  m := TMemoryStream.Create;
  f.Position := 0;
  m.CopyFrom(f, f.Size);
  f.Free;
  FillChar(vsFixedFileInfo, 0, sizeof(vsFixedFileInfo));
  vsFixedFileInfo.dwSignature := $FEEF04BD;
  vsFixedFileInfo.dwStrucVersion := $00010000;
  vsFixedFileInfo.dwFileVersionMS := $00010000;
  vsFixedFileInfo.dwFileVersionLS := $00000000;
  vsFixedFileInfo.dwProductVersionMS := $00010000;
  vsFixedFileInfo.dwProductVersionLS := $00000000;
  vsFixedFileInfo.dwFileFlagsMask := $3f;
  len := sizeof(vsFixedFileInfo);
  m.Write(len, sizeof(len));
  m.Write(vsFixedFileInfo, sizeof(len));
  f := TFileStream.Create(Form1.Edit1.Text + '_new', fmCreate);
  m.Position := 0;
  f.CopyFrom(m, m.Size);
  m.Free;
  f.Free;
end;
Es wär nett, wenn jemand einen Ratschlag geben könnte der mich weiter bringt in Sachen TVSFixedFileInfo, RT_VERSION und VS_VERSION_INFO über Stream neu schreiben.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Versionsinformationen (VSFixedFileInfo) per Stream anfüg

  Alt 16. Mai 2009, 19:57
Was spricht gegen Delphi->Projekt->Optionen->Versionsinfo?
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

Re: Versionsinformationen (VSFixedFileInfo) per Stream anfüg

  Alt 16. Mai 2009, 20:00
Es soll für jede beliebe Datei sein, auch jene die nicht mit Delphi erstellt wurden.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Versionsinformationen (VSFixedFileInfo) per Stream anfüg

  Alt 16. Mai 2009, 20:03
Ich kann dir da helfen .. Habe eine Klasse gebastelt, die die Versionsinformationen im Binärformat lesen und schreiben kann. Ich krame mal den Source aus und poste ihn dann hier.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#5

Re: Versionsinformationen (VSFixedFileInfo) per Stream anfüg

  Alt 16. Mai 2009, 20:06
Da wär natürlich eine tolle Sache. Wenn sie denn wirklich eine neue Resource sozusagen schreibt, wenn sie nocht nicht vorhanden ist.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:58 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