Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Aus laufender Anwendung Exe Datei erstellen (https://www.delphipraxis.net/105726-aus-laufender-anwendung-exe-datei-erstellen.html)

Larsi 28. Dez 2007 12:34


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

fwsp 28. Dez 2007 12:36

Re: Aus laufender Anwendung Exe Datei erstellen
 
willst/musst du den installer wirklich selbst programmieren? wenn nicht such mal nach innosetup.

Larsi 28. Dez 2007 12:37

Re: Aus laufender Anwendung Exe Datei erstellen
 
ich möcht ja kein installer für meine anwendung programmieren, sondern sowas wie innosetup :)

DeddyH 28. Dez 2007 12:38

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.

Larsi 28. Dez 2007 12:40

Re: Aus laufender Anwendung Exe Datei erstellen
 
Zitat:

Zitat von DeddyH
1. Wieso das Rad neu erfinden?

ich möchte ein programm ohne irgendwelche scriptsprachen für anfänger(wie mich :) ) erstellen und innosetup als ich das das erste mal gesehen hab hätte ich ohne anleitungen im netz damit gar nicht arbeiten können.

DeddyH 28. Dez 2007 12:45

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.

Larsi 28. Dez 2007 12:47

Re: Aus laufender Anwendung Exe Datei erstellen
 
aber das ist doch scohn fertig und ich möcht ja was eigenes programmieren

DeddyH 28. Dez 2007 12:49

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.

wicht 28. Dez 2007 12:57

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

sirius 28. Dez 2007 13:25

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.

Luckie 28. Dez 2007 15:22

Re: Aus laufender Anwendung Exe Datei erstellen
 
Zitat:

Zitat von sirius
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.

Das ist dem Loader egal. Meine SFXTools http://www.michael-puff.de/Developer/Delphi/Programme/ funktionieren auch so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 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