Autor Beitrag
Taktaky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 31.07.07 22:14 
Hallo

ich möchte einen exe-Packer erstellen. Der exe-Packer soll alle html-Dateien, die in einem Ordner sich befinden zu exe umwandelt (packt als SFX). Und wenn man die erstelle exe ausführt, soll die exe Datei irgendwo automatisch entpackt (z.B. in Temp oder in Memory). Man muss vor dem Packen eine Datei auswählen (bestimmen), die nach dem Entpacken starten soll.

Hier ist ein beispiel. Das finde ich fast 100% ahnlich wie mein Wunsch


user defined image

Quelle : ebook-compiler.lowes...sulting.qarchive.org

Das prinzip : dn.codegear.com/article/27843


Meine Frage:
Mit Welchen Themen muss ich beschäftigen, damit ich sowas mit Delphi erstellen kann?

Gruss


Moderiert von user profile iconChristian S.: Topic aus Multimedia / Grafik verschoben am Di 31.07.2007 um 22:22
Arne K.
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
EE-Autor
Beiträge: 112


C# (VS 2008 Professional)
BeitragVerfasst: Di 31.07.07 22:35 
Da du da vermutlich über Window's Resource-Handling nicht drum herum kommen wirst (es sei denn, du kannst auf eine einzige .exe-Datei zu Gunsten von einer Datei + einem Archiv verzichten), würde ich erster Linie sagen: WinAPI
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 31.07.07 22:55 
Guck mal hier: www.michael-puff.de/...er/Delphi/Programme/ -> SFXTools.zip

Und das was du machen willst, ist kein Exe-Packer, sondern ein selbst entpackendes Archiv. Und wenn ich das lese:

user profile iconTaktaky hat folgendes geschrieben:
Der exe-Packer soll alle html-Dateien, die in einem Ordner sich befinden zu exe umwandelt

Dann fehlen dir noch ziemliche Grundlagen, wie so etwas funktionieren könnte. Insofern, glaube ich kaum, dass du was mit meinem Code anfangen kannst.

Das Prinzip ist folgendes:
Es gibt einen Exe-Stub an dem mittles einer anderen Exe die Dateien angehangen werden. Der Exe-Stub bleibt auch weiterhin mit den angehangenen Dateien ausführbar. Zum Entpacken wird der Exe-Stub ausgeführt und kopiert die angehangenen Dateien auf die Festplatte.

Man muss sich dazu aber einiges organisatorisches überlegen, spätestens, wenn man mehr als eine Datei anhängen will:
- Wie speicher ich die Pfade (wenn Unterverzeichnisse mit gepackt werden sollen)?
- Was für eine Struktur brauche ich, um die angehangenen Dateien nachher wieder trennen zu können.
Man könnte zum Beipiel so was machen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Exe-Stub
Größe Datei 1
Datei1
Größe Datei 2
Datei 2
Größe Datei 3
Datei 3
...
Gesamtgröße aller Dateien plus Größenangaben

Um die Dateien wieder auslesen zu können, muss man nun am Ende des Exe-Stubs den Wert lesen, der angibt, wie groß alle Anhänge sind. Dann weißman, wo die Exe aufhört und die Daten anfangen. Nun ja und dann liest man eben die Angegeben Anzahl Bytes und schreibt sie auf die Festplatte.
Will man jetzt auch noch die Pafe speichern, reicht es natürlcih nicht nur die Dateigröße zu speichern. Da muss man sich dann eine entsprechende Struktur ausdenken, in der man noch den Pfad speichern kann.

Alternativ ginge auch so was:
ausblenden Quelltext
1:
2:
3:
4:
5:
filerecord
begin
  Offset
  Pfad
end

Und dann am Exe-Stub:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
filerecord 1
Datei 1
fileecord 2
Datei 2
filerecord 3
Datei 3
...
Gesamtgröße aller Dateien plus Größenangaben


Dann könnte man auch noch einen großen Record an den Anfang oder das Ende schreiben.

Da musst du dir eben was ausdenken.
Taktaky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mi 01.08.07 10:41 
Vielen Dank Luckie !

Wie ich sehe, es ist nicht einfach für mich. Ich werde aber nie aufgeben auch wenn es mir viel Zeit verlangt.

Ich werde auch sehr dankbar für jede Hilfe.

Ich kann zwar mit delphi kleine Sachen programmieren aber sowas :(

Nachdem ich ein ähnliches Programm seine kleine Grösse etwa 800 kb gefunden, habe ich gedacht es ist leicht sowas zu programmieren.

Danke noch einmal für Deine Erklärung !


Viele gruße
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 02.08.07 10:22 
Noch was, die Exe-Stub sollte am besten ohne VCL programmiert werden, sonst ist der Overhead einfach zu groß. Eine der wenigen Situationen, in denen eine direkte Programmierung mit der WinAPI Sinn ergibt. ;)