Tool to merge multiple files into one executable (AppPack)

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
Kukulkan
Addict
Addict
Posts: 1396
Joined: Mon Jun 06, 2005 2:35 pm
Location: germany
Contact:

Tool to merge multiple files into one executable (AppPack)

Post by Kukulkan »

Hi,

This tool is designed to merge applications, that need more than one file to run (DLL's, ressources etc.), into one single and compressed executable. This is especially helpful if you like to spread your application without the need of a setup (USB-versions for example) or without offering the download of multiple files.

It works this way: It compresses and merges all files into one single file including a special uncompression and start-tool. The result is a single and normal executable. Upon start, all files will get extracted into a temporary folder and one of them will get startet (you decide which file this is. Use right mouseclick in the filelist for options). If the program is closed, all temporary files will get deleted.

The new generated executable will get the icon and the version number information from the file selected to get startet. You can select another icon, too. Also commandline parameters are routet to this file to allow commandline usage of AppPacked applications.

By the way, AppPack is an AppPack compressed application, too. Normally it would consist of two files (GUI and decompress-executable). And it is really handy if you need some DLLs included to run your application.

Oh, this version is limited to 5 files. I really don't know if I will sell this as shareware in future. So currently there is this limitation. Sorry.

Please find the application here:
http://www.x-beliebig.info/Download/AppPack.exe

Screenshot (reduced size):
Image

Every feedback is welcome :D

[EDIT]
Features planned for future:
- including sub-folders
- supporting temporary registry-settings
[/EDIT]

Greetings,

Kukulkan
User avatar
Kukulkan
Addict
Addict
Posts: 1396
Joined: Mon Jun 06, 2005 2:35 pm
Location: germany
Contact:

Post by Kukulkan »

Hi,

Unbelievable that no one is interested in such a tool :shock:

Kukulkan
User avatar
idle
Always Here
Always Here
Posts: 5903
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Post by idle »

I'm sure people will be interested, I haven't found the time to have a look though I already have a packer.
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

No responses doesn't mean no interest. I downloaded it but haven't had
time to test it yet. So just give us a little more time, Mr Impatient. ;)

But also don't forget: with the IncludeBinary and Catch commands, there
might not be a real need for your app, since PureBasic makes it so easy
to create a single executable in the first place.
User avatar
Kukulkan
Addict
Addict
Posts: 1396
Joined: Mon Jun 06, 2005 2:35 pm
Location: germany
Contact:

Post by Kukulkan »

Hi,
But also don't forget: with the IncludeBinary and Catch commands, there
might not be a real need for your app, since PureBasic makes it so easy
to create a single executable in the first place.
It is possible to use AppPack to merge binary data (like images etc.) into a single executable, but it is more intended to allow developers adding external ressources like DLL's (possibly commercial). I personally need to distribute the same application with different logo-images and different language translation-file. Using IncludeBinary() I will need to re-compile each version. In my case I liked the idea to 'pack' them simply together in different versions.
Mr Impatient
yes. :) Waiting since friday morning. :cry:

Kukulkan
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

> it is more intended to allow developers adding external ressources

I see what you mean now. Would be useful for people who also want to just
pack an app into an exe to take somewhere, without zipping/unzipping it all.
citystate
Enthusiast
Enthusiast
Posts: 638
Joined: Sun Feb 12, 2006 10:06 pm

Post by citystate »

something to consider, especially if you're thinks of offering this commercially.
you've included a limitation or 5 files...
...so what's to stop an enterprising developer from AppPacking AppPacked files?
there is no sig, only zuul (and the following disclaimer)

WARNING: may be talking out of his hat
User avatar
Kukulkan
Addict
Addict
Posts: 1396
Joined: Mon Jun 06, 2005 2:35 pm
Location: germany
Contact:

Post by Kukulkan »

you've included a limitation or 5 files...
...so what's to stop an enterprising developer from AppPacking AppPacked files?
His honor? :wink:

I think a developer who likes to spread a commercial application will pay the little fee. Some unprofessional may do something like you described - I simply dont care about them. The executable will get bigger and bigger (as the decompression-routine will get inserted multiple times) and the needed effort for them is big.

Kukulkan
User avatar
DoubleDutch
Addict
Addict
Posts: 3220
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

Post by DoubleDutch »

I use my opensource DBin instead. (no fee) ;)

A big advantage with DBin is that you don't have to uncompress the files to a temp folder before you can use them.
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
User avatar
Kukulkan
Addict
Addict
Posts: 1396
Joined: Mon Jun 06, 2005 2:35 pm
Location: germany
Contact:

Post by Kukulkan »

Hi,

I'm not sure about DBin, but am I right that you need to distribute a .exe file and a .bin file instead of multiple files? This is what I like to prevent. AppPack allows you to distribute one single executable with no additional files. But it is able to include commercial DLL's, different logo's, language-files and other files. As I can see, using DBin results in a new compilation for each version, too.

So, DBin is no replacement for AppPack. Maybe I need to show you an example:

This are the files I need to distribute. They are needed to be able to run the application:
- MySuperApp.exe
- SomeSuperControl.dll
- SomeSuperFunctions.dll
- LanguageFile.csv
- SomeDifferentTemplates.txt
- SomeCustomerLogo.jpg

To distribute this, I have three methods:
- create a setup using some installer-tool.
- create a zip-folder (only for advanced users)
- use AppPack to create MySuperApp_Standalone.exe including all files (!)

Using DBin you need to distribute: (if I understood correctly)
- MySuperApp.exe
- MySuperApp.bin

Here again the user needs to download two files, a zip-file or a setup. Use AppPack, and the user is happy with:
- downloading only one single file
- running directly without installation, unzipping etc.

So I realize that the biggest problem about AppPack is to realize what it can do for you. Maybe I need a good FAQ describing such facts?

Kukulkan
User avatar
DoubleDutch
Addict
Addict
Posts: 3220
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

Post by DoubleDutch »

No, I your incorrect about DBin......

With DBin you just append the .bin to the end of the .exe = single file. The routines will load from the end of the exe. :D

You could distribute 'MySuperApp.exe", also there would be no need for creating temp files on the users system - which most people wouldn't like - imho.
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Post by Mistrel »

Kukulkan wrote:Hi,

Unbelievable that no one is interested in such a tool :shock:

Kukulkan
This kind of tool is excellent but I already wrote a similar one. And it does subdirectories. :P
User avatar
Kukulkan
Addict
Addict
Posts: 1396
Joined: Mon Jun 06, 2005 2:35 pm
Location: germany
Contact:

Post by Kukulkan »

Hi,

It seem to be hard to understand: In my case it is not possible to recompile the program for each customers logo's, language-files etc. including the needed changes to the sourcecode. So, including those data into the main executable has been no option. And how do you use DLL's that are packed using DBin? Is it possible to use DLLs that are just in memory? Interesting.

Mistrel, where can I find your tool? Seems interesting, too! Does it really do the same than my AppPack including a GUI for creation? No need for recompiling the application? Does it work with other developers applications, too (like my one is doing)? I must have overseen this :?

Please post a link and I will see if it fits my needs. In this case I will stop continuing my tool. No need to reinvent the same twice.

Kukulkan
Pantcho!!
Enthusiast
Enthusiast
Posts: 538
Joined: Tue Feb 24, 2004 3:43 am
Location: Israel
Contact:

Post by Pantcho!! »

There is a huge market out there, just because there are solutions does not mean they are better then your own or the opposite.

If you believe in this tool work on it and try to market it if it is in developers download sites and etc.

the internet is the biggest market ever, EVER.

good luck.
User avatar
DoubleDutch
Addict
Addict
Posts: 3220
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

Post by DoubleDutch »

You don't have to recompile the program - just append the file on the end of an existing program. It would be fairly easy to write a "generator" to do this.

DLL's can be loaded from memory using some of the libs available for PureBasic.
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
Post Reply