![]() |
Aus laufender Anwendung Exe Datei erstellen
hi,
im titel steht ja scho so ziemlich alles. also ich programmier grad n installer für delphi anwendungen aber der muss ja eine exe datei erstllen koennen während er läuft und die exe datei muss man davor ja auch bearbeiten können. ich hab echt keine ahnung wie das gehen solla ber ihr koennt mir bestimmt helfen! MFG Lars Wiltfang |
Re: Aus laufender Anwendung Exe Datei erstellen
willst/musst du den installer wirklich selbst programmieren? wenn nicht such mal nach innosetup.
|
Re: Aus laufender Anwendung Exe Datei erstellen
ich möcht ja kein installer für meine anwendung programmieren, sondern sowas wie innosetup :)
|
Re: Aus laufender Anwendung Exe Datei erstellen
1. Wieso das Rad neu erfinden?
2. InnoSetup ist OpenSource. Schau doch einfach da nach, wie es gemacht wird. |
Re: Aus laufender Anwendung Exe Datei erstellen
Zitat:
|
Re: Aus laufender Anwendung Exe Datei erstellen
Dann nimm doch eins der GUIs, z.B. ISTool. Auf lange Sicht tust Du Dir damit eher einen Gefallen, als wenn Du quasi bei 0 selbst anfängst, finde ich.
|
Re: Aus laufender Anwendung Exe Datei erstellen
aber das ist doch scohn fertig und ich möcht ja was eigenes programmieren
|
Re: Aus laufender Anwendung Exe Datei erstellen
Tu, was Du nicht lassen kannst :mrgreen: . Zu Deiner Ausgangsfrage such mal nach SFX, das dürfte in etwa dem entsprechen, was Du suchst.
|
Re: Aus laufender Anwendung Exe Datei erstellen
Ganz primitiv könntest du es ungefähr so machen:
Du hängst an den Installer die zu installierenden Daten an, zum Beispiel mit TFileStream. Nach dem bearbeiten sollte deine Exe dann so aussehen: [EXE-Datei Installer][Datei2][Größe Datei2][Datei1][Größe Datei1] Also direkt hinter der Original-Exe hängt Datei2, dahinder die Größe von Datei2, dann das selbe für Datei1. Wenn dein Installer jetzt das Programm installiert, öffnet er sich selber (Application.Exename) und öffnet auf sich selber einen TFilestream (fmOpenRead mit fmShareDenyWrite glaube ich, ist vielleicht auch falsch). Der FileStream geht nach hinten (.Position := .Size), geht dann 4 Bytes nach vorne (.Position := .Position - SizeOf(Integer)) und ließt einen Integer aus, dann weiß er hier die Größe von Datei1, die ja ganz hinten steht. Dann spult er die eben eingelesenen 4 Bytes (SizeOf(Integer)) wieder zurück und dazu noch die Größe von Datei1, die eben ausgelesen wurde. Dann ließt Du soviel Bytes ein, wie dir die zuerst gelesene Größe gesagt hat. Schwupp, da hast du deine Datei. So machst du dann für alle Dateien weiter. Das ganze ist natürlich stark verbesserungswürdig (Kompression..) aber so könnte man es ganz schlicht machen... HTH |
Re: Aus laufender Anwendung Exe Datei erstellen
Ich weis nicht ob der Exe-Loader zufrieden damit ist, wenn einfach noch ein riesen Batzen Daten hinten dranhängt, der im Header nicht "angemeldet" wird.
Eine eigene Exe zu erstellen oder auch nur eine zu verändern ist nicht ganz billig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz