AppPack zum zusammenfassen von Dateien in eine EXE

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

AppPack zum zusammenfassen von Dateien in eine EXE

Beitrag von Kukulkan »

Hallo,

Dieses Programm (AppPack genannt) ist dazu da, eine Anwendung die mehrere Dateien benötigt (zB DLL's, Ressourcen etc.) in ein einzelnes Executable zu verwandeln. Das macht dann Sinn, wenn man diese Anwendung ohne Setup weitergeben möchte und im Download aber nur ein Executable anbieten mag.

Es funktioniert so, dass alle angegebenen Dateien in eine Exe zusammegefasst und komprimiert werden. Beim Starten werden alle Dateien in ein temporäres Verzeichnis entpackt und eine davon gestartet (Rechtsklick in die File-Liste!). Nach dem beenden wird das Temp-Verzeichnis incl. Inhalt wieder aufgeräumt.

Das Icon und die Versionsnummer werden von dem zu startenden Programm übernommen, so dass das Programm gut ausschaut. Kommandozeilenparameter werden an die zu startende Datei durchgereicht.

Dieses AppPack ist übrigens selbst bereits mit AppPack zusammengefasst, da es normalerweise aus zwei Programmteilen besteht (Creator GUI und die Entpack-Komponente, beide als .exe). Wirklich praktisch ist es, wenn man DLL's mitliefert und kein Setup ausführen möchte oder darf.

Ach ja, diese Version ist noch Beta und auf max. 5 Dateien beschränkt, weil ich noch überlege ob ich das mal als Shareware rausgeben möchte.

Download hier:
http://www.x-beliebig.info/Download/AppPack.exe

Screenshot (verkleinert):
Bild

Feedback gerne willkommen :D

Grüsse,

Volker
Zuletzt geändert von Kukulkan am 04.09.2008 18:17, insgesamt 3-mal geändert.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Volker Schmid
Klappt wunderbar :allright:

Wie kann ich eigentlich ermitteln, wie der temporäre Ordner heißt?
Da werden Ordner wie AppPack57762, AppPack06766, AppPack64713 usw. erstellt.
Wie kann ich das ermitteln?

BTW: Könntest du auch noch einen Screenshot erstellen und hier reinstellen?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo RSBasic,
Wie kann ich eigentlich ermitteln, wie der temporäre Ordner heißt?
Da werden Ordner wie AppPack57762, AppPack06766, AppPack64713 usw. erstellt.
Wie kann ich das ermitteln?
Die Ordnernamen werden per Zufallszahl erstellt. So sollen sich mehrere per AppPack gestartete Programme nicht in die Quere kommen. Die darin gestartete Anwendung bekommt das Verzeichnis aber als "Aktuelles Verzeichnis" angegeben, so dass Pfade wie ".\LokaleDatei.dat" direkt funktionieren.

Grüsse,

Volker
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Volker Schmid
Verbesserungsvorschlag:
Könntest du noch so machen, dass man für die neue EXE-Datei einen eigenen Icon aussuchen kann?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Volker Schmid hat geschrieben: Die Ordnernamen werden per Zufallszahl erstellt.
Suboptimal, bzw. unsicher!
Man kann z.B. die GetTempFileName API verwenden oder eine GUID
erzeugen.
GUID-String wird gerne für sowas genommen und halte ich für am sichersten.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo,
Könntest du noch so machen, dass man für die neue EXE-Datei einen eigenen Icon aussuchen kann?
Ja sicher, wäre ein schönes Feature. Aber dann muss das Icon im Format .ico vorliegen. Ist was für die nächste Version.
Suboptimal, bzw. unsicher!
Man kann z.B. die GetTempFileName API verwenden oder eine GUID
erzeugen.
GUID-String wird gerne für sowas genommen und halte ich für am sichersten.
Gute Idee, ich werd das in einer nächsten Version verbessern.

Volker
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Volker Schmid
Danke :D

Verbesserungsvorschlag:
Kannst du auch so machen, dass man auch Ordner inklusive Dateien, die in dem Ordner vorhanden sind, hinzufügen kann?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo,

NEUE VERSION:

- Optionales Icon für die Zieldatei
- vergrösserter Bereich für die Generierung der Temp-Ordner (10 statt 5 Stellig)

@ts-soft:
Ich benutze keine GUID, da die Chance auf eine Programmkollision bei Parallelstart jetzt bei 1 zu 999'999'999 steht. Das Risiko gehe ich ein :)

@RSBasic:
Die Option mit den Ordnern hab ich bis jetzt nicht benötigt. Mal sehen wie die weitere Resonanz auf das Programm ist. Wenn das öfters kommt, würde ich es evtl. einbauen.

Grüsse,

Volker
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Volker Schmid hat geschrieben:@ts-soft:
Ich benutze keine GUID, da die Chance auf eine Programmkollision bei Parallelstart jetzt bei 1 zu 999'999'999 steht. Das Risiko gehe ich ein :)
Lege doch als Ordnername den Namen der Exe an und wenn schon ein Pfad gleichen Namens im Temp-Verzeichnis vorhanden ist hängst du noch ne fortlaufende Nummer an. Dann kann es auch zufallsbedingt nie zu Kollisionen kommen.

Ansonsten, schönes Tool. :allright:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Antworten