t@b setup compressor compiler (exe maker on windows)


tabscc falls into the "free self extracting executable maker" category. tabscc also allows you to specify which file should be launched immediately after the self-extracting executable is done decompressing/unpacking. this "launch" file may be any kind of file, including, but not necessarily an executable file.

In Practice:

running tabscc without any arguments results in the following output:

usage: tabscc dirnam output.exe [options]

options:
-l launch file specifies the file to launch after decompression.
-i *.ext *etc* include specified patterns
-x *.ext *etc* exclude specified patterns
-r levels directory recursion levels are an integer >= 0 (default is infinite).

Remarks to the above

  • under windows you may have to type tabscc.exe to run the command.
  • tabscc never stores the full directory name of the compressed files. it only stores the subdirectory path (after dirnam). the resulting executable always unpacks the files into a temporary folder before launching a specified/default file within that temp directory.
  • if no -l option is specified, then the resulting self-extracting executable will search for one of the default launch files: "setup.exe setup.sh install.exe install.sh index.html index.htm.
  • if one or more -x (exclude) patterns are specified, then any file in the dirnam directory matching any one of the exclude patterns will not be included in the resulting executable, event if the the file matches any one of the -i (include) patterns.
  • if any -i (include) patterns are specified then a file in the dirnam directory MUST match at least one of the -i patterns and must match none of any potentially specified -x patterns.
  • use -r 0 if you want to prevent tabscc from recursively scanning the dirnam directory, or -r levels to descend levels deep into subdirectories.

Download

windows: t@b_tabscc_win32.zip
linux: t@b_tabscc_linux.tar.gz
latest versions: at devel.zs4.net

tabscc is copyright (c) 2004, t@b software and written by andy flinn. (compression/zlib was written by jean-loup gailly and mark adler.)

PS: the two downloads below are for the purpose discussed in the comments (event further down). win32 only.
AttachmentSize
tablaunchz.exe392 KB
tabtree.exe400 KB

for example if a have a dire

for example if a have a directory called websitedir containing a static website, i can package it as self-extracting executable by typing: tabscc websitedir/ website.exe -i *.html *.png *.jpg *.css lickety-split! done!

Nice tool! Is it possable to

Nice tool! Is it possable to change the icon of the created exe file that is created by tabscc?

i am considering the removal

i am considering the removal of an icon altogether, so that users are not stuck with our icon.

i'm not sure if any 3rd party software allows the replacement of icons in executable modules.

->edkeyte: Well, you can alwa

->edkeyte: Well, you can always use a resource editor like http://www.wilsonc.demon.co.uk/d7resourceexplorer.htm to change the icon. Just open the installer file, then the submenu sections->.rsrc->Icon Group->MAINICON->whatever language it is in (probably English). The next two menu points are the two icons for the program. (hi-color and 256 colors). Now, you only have to replace the icon with the icon you want. If it doesn't work, I'm wrong. :-) If so, just search around the file until you find the icon you want.
->countinn: Hi! Just a quick note of explanation about a certain detail of Windows:
"under windows you may have to type tabscc.exe to run the command."
Afaik, this is only the case if the path to the file contains spaces. It is because if you don't add the .exe extension, Windows tries to process the command in dos manner (with parameters and auto-extension-completion (it tries .bat, .com, .exe afaik)). Traditionally, a space sign is used for parameter separation. Because of this, a command like C:\Documents and settings\tabscc.exe is executed as c:\documents (.exe,.com,.bat) with the parameters "and" and "settings\tabscc.exe". By adding "" signs, you can tell Windows you want it to execute exactly the command between " and " (including spaces), but then it doesn't autocomplete the .exe extension. That's why you have to add it in this case.
Greetz and stuff,
caddy
I don't need no sig!

shanx!

shanx!
especially for the hint about filenames with spaces :) NOW EYE GETTIT!!!.

PS: do resource edtors work with a tabscc.exe-produced executable? (i could think of reasons why not... t@b might start using this sort of thing to make different installers have different icons...)

Hi thanks for the reply! No I

Hi thanks for the reply! No I tried Resoures Hacker and it didn't work anyway I'm really looking for somthing that can be bilt into my programe and can chage the icon at runtime.

Here is a simple example af what I'm trying to do. This is an ebook maker and the .exe files are made with tabscc.exe but the icons on the created .exe file can not be changed no matter how much I try.

See this example of what I'm trying to do:
http://www.net-hosting.org/ebookmaker.exe

P.S. I'd be happy to donate some money to countinn for the developement of tabscc.exe so that countinn can let me change the icons.
Best regards Ed

@countinn: Well, I think they

@countinn: Well, I think they do, at least PE Resource Explorer does. -Well, it does, but it is really limited. I tried it out right now and found that: a) importing icons doesn't work. b) if you change an icon with the internal editor, it messes up the transparency. c) If you delete all icons and then create a new one (not sure about the order), it seems to work, but only with 32x32x4. So, Resource Explorer = bad program. Pity. In principle, it should work, however. Well .. that doesn't help much, does it? :-(
greez and sry, caddy
PS: A small problem with the installer: if you call it from the DOS prompt without using the .exe extension, it starts, but exits again without displaying the help screen.

I don't need no sig!

@caddy, this helped a lot, es

@caddy, this helped a lot, especially since i've procrastinated on that topic myself...

i also looked at the ebookbaker and i love the idea. i think, if edkyte primarily wants one (always same) ebook icon to be produced instead of the tab-utilities icon, then i've got a solution that only requires me to rebuild our current work build and post two other exe files to the article above. ed can edit the resources in (tablaunchz.exe) i think. and then run "\hisdir\tabtree.exe g \hisdir\" whould would result in a tabscc.exe in that produces executables with HIS tablaunchz.exe icons.

i shall post the exe's shortly.

after that i shall look up some of my code for invoking dos utilities without having a console window popping up.

PS: i really like the idea of frEEboox!

Hi! Thanks for the reply. A

Hi!
Thanks for the reply.
And thanks so much for uploading the two files. Very kind of you!
But sorry I can't seem to set it up to change the icon. I edited the resources in (tablaunchz.exe)and then I ran "\hisdir\tabtree.exe g \hisdir\" but I can't understand why this command didn't work could you tell me what the last \hisdir\ is ment to point to? the one after the tabtree.exe g I'm sorry I can't understand well how to execute the tabtree.exe file to build my new tabscc.exe file in the produced executable with my tablaunchz.exe icon.

Anyway thanks again and best regards.
Ed.

the final argument specifies

the final argument specifies the directory containing tablaunchz.exe. (the same directory that will end up containing the tabscc.exe at the end, metinx), thus:

tabtree.exe g \DirContainingTabLaunchZ\

the resulting program tabscc is actually a copy of tabtree.exe, but containing a compressed copy of tablaunchz.exe. when you the run tabscc.exe that program will

a) extract the tablaunchz.exe from itself
b) scan compress the files/dirs specified
c) embed the z-compressed directory structure into the extracted tablaunchz.exe and call it outputfile.exe

i did btw try the PE Resource explorer from caddy's comments, changed the one icon in tablaunchz, ran the tabtree command and then build a fotoman installer with the resulting tabscc program. the resulting executable did show the mutated tablaunchz icon.

Thanks fantastic It's done! t

Thanks fantastic It's done! thank you so much!

is EBookMaker available for d

is EBookMaker available for download?

I'm still working on it but I

I'm still working on it but I have updated the above link if you'd like to try, it has the new icon on it.

Anway I was using the IE web browser activeX control for the main window of the ebook but It seemed to be giving of some bugs on some windows platforms so I've stoped using webbrowser for the moment till I know why there are bugs but instead I use a window that will show rich text files (*.rtf) and in the maker I use a wysiwyg editor to edit and save the pages.
It's a long way from finished and I'm a beginer at al this. Let me know what you think.
Regards.
Ed

holla, i can see how using

holla,
i can see how using the IE control will cause problems, both with stability as well as security.

i did download the version with new icons and saw that you switched to rtf from html. (i prefer html because it allows a user to choose from a greater variety of programs reading).

i'm interested to know about the intended users of your program, license etc. until i know more i simply think the following:

1. "kool, somebody is using the work we've done!"
2. "i hope ed is successfull with his project!"

PS: sorry about taking so long with my answer. i've been working on zs4 with great obsession...

Hi thanks for the reply! I n

Hi thanks for the reply!
I never plan on selling the ebook maker it will be free ware But I don't know if people will sell their ebooks that they make with the ebook maker I'd be happy to put your name and a link to your site in the about box of the ebook maker when it's all done.

My plan was to make this ebook maker for teachers (because I am a teacher) to right reports and tutorials etc for their students but I'm happy for anyone to use it. It will always be free, simple, and light wait but I will always be looking to add new features.
I also turned it back into an HTML version.
Anyway with your program I also plan to make an exercise maker for teachers to build stand-alone tests and interactive courses for their students I love your program and have many plans but I’m not going to make anything other than free-ware software with your programe.
One question I do have is would it be possible for there to be away of allowing users of the ebook maker to chouse their own Icon?

Hi everybody ! Sorry, I ha

Hi everybody !

Sorry, I have a question about the way to use Tabscc.

In Dos Prompt, I type:

c:\tabscc c:\folder/ output.exe -i *.exe *.txt

And then ENTER. But nothing happen. There's no file Output.exe.

Please explain to me why ???

looking at this i wonder if t

looking at this i wonder if there's no output at all? no error message?

When I type: c:\tabscc c:\fol

When I type: c:\tabscc c:\folder/ output.exe -i *.exe *.txt

Nothing happen, no error message, but no file is created...

Hix...I need a small program can do all task like Tabscc. Do you know which program is similar to Tabscc ?

nothing i know like tabscc, i

nothing i know like tabscc, i post updated versions for the program to
http://devel.tabnet.ch/tabscc_win32.html . of course i would fix your problem if i was able to recreate it.

i've just posted tabscc test

i've just posted tabscc test package for windows at http://www.thugsatbay.com/tab/?q=tabscc-test-package-for-windows

Hi Countinn ! I do exactly

Hi Countinn !

I do exactly what the file Readme.htm write but nothing happen.

What's wrong ? :(

i also wonder'bout your OS (X

i also wonder'bout your OS (XP,2000,ME,98) etc... but my hope is diminishining that i might be able to help you, since i'm running XP and am unable to test on an other operating system.

My OS is winXP too. Let me ty

My OS is winXP too. Let me type again:

I click START > PROGRAM > ACCESSORIES > Command Prompt

Then I type:

C:\tabscc c:\folder\ test.exe -i *.exe *.txt

ENTER

Nothing happen !!...it is true....:(

its all clear to me now! you

its all clear to me now! you do not type ".exe" at the end of "tabscc". i acknowledge this is a bug and will be fixed in the next release scheduled for http://devel.zs4.net.

in the mean time type...

tabscc.exe ....

for running the command. i bet u dollars to donuts that's what the problem is.

Thanks Countinn very much !!

Thanks Countinn very much !!

It works now !! :) :) :)

Oh, Would you please tell me what is the difference between the file TABSCC (600Kb) and the File TABSCC (

I'm working on a new software

I'm working on a new software (Not Finished yet) with the help of your nice compressor compiler. It's called:
Quiz maker version 1.0
The user can make unlimited quizzes and exercise and build it all into an .exe learning software for their students etc. Each quiz can have unlimited questions. You can also import medias such as pictures and sound. The quiz maker has a built in sound recorder that can record your own voice and then it automatically builds it into their quiz soft.
they can setup the overall look and feel of their quiz soft with color and the about box text, write their own help menu etc.
Check it out here:
http://www.net-cyber.org/Quiz_maker.exe

nice! i got some idea now how

nice! i got some idea now how to get rid of that console window during copile....

the following function is for making command line calls without having a window appear. if you're interested in getting the output, simply modify what is done with the "outbuffer" variable...

int TAB_FASTCALL SystemCommand( const char * command, buffer * outbuffer, bool * abort )
{
BOOL bSuccess;
/* set up the security attributes for the anonymous pipe */
SECURITY_ATTRIBUTES saPipe;
saPipe.nLength = sizeof(SECURITY_ATTRIBUTES);
saPipe.lpSecurityDescriptor = NULL;
/* In order for the child to be able to write to the pipe, the handle */
/* must be marked as inheritable by setting this flag: */
saPipe.bInheritHandle = TRUE;

HANDLE hReadPipe = NULL, hWritePipe = NULL;
if (!CreatePipe(&hReadPipe,&hWritePipe,&saPipe,0))
return -1;

HANDLE hProcess = GetCurrentProcess();

if (!DuplicateHandle(hProcess,hReadPipe,hProcess,NULL,0,FALSE,DUPLICATE_SAME_ACCESS))
{
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
return -1;
}

HANDLE hErrorPipe = NULL;
if (!DuplicateHandle(hProcess,hWritePipe,hProcess,&hErrorPipe,0,TRUE,DUPLICATE_SAME_ACCESS))
{
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
return -1;
}

STARTUPINFO si; MemorySet(&si,0,(STABINT64)sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.hStdInput = hErrorPipe; /* hStdInput needs a valid handle in case it is checked by the child */
si.hStdOutput = hWritePipe; /* write end of the pipe */
si.hStdError = hErrorPipe; /* duplicate of write end of the pipe */
si.dwFlags = STARTF_USESTDHANDLES;

PROCESS_INFORMATION pi;

if (!CreateProcess(
NULL, /* filename */
(LPTSTR)command, /* full command line for child */
NULL, /* process security descriptor */
NULL, /* thread security descriptor */
TRUE, /* inherit handles? Also use if STARTF_USESTDHANDLES */
DETACHED_PROCESS, /* creation flags */
NULL, /* inherited environment address */
NULL, /* startup dir; NULL = start in current */
&si, /* pointer to startup info (input) */
&pi) /* pointer to process info (output) */
)
{
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
CloseHandle(hErrorPipe);
return -1;
}

CloseHandle(pi.hThread);
CloseHandle(hWritePipe);
CloseHandle(hErrorPipe);

bool got_first_lf = false;
for (;;)
{
if ( abort && *abort )
{
TerminateProcess(pi.hProcess,9999);
break;
}

DWORD cchReadBuffer; char * cp;
char chReadBuffer[64];

bSuccess = ReadFile(
hReadPipe, /* read handle */
chReadBuffer, /* buffer for incoming data */
sizeof(chReadBuffer), /* number of bytes to read */
&cchReadBuffer, /* number of bytes actually read */
NULL); /* no overlapped reading */

if (!bSuccess)
{
if ( GetLastError() == ERROR_BROKEN_PIPE )
break;

continue;
}

if ( cchReadBuffer < 1 )
continue;

cp = chReadBuffer;
if ( !got_first_lf )
{
while ( cchReadBuffer > 0 )
{
bool brekk = false;
if ( *cp == 10 )
{
brekk = true;
got_first_lf = true;
}

cp++;
cchReadBuffer--;

if ( brekk )
break;
}
}

if (bSuccess && cchReadBuffer)
{
if ( outbuffer )
{
// the bytes to output buffer where cchReadBuffer is the count of the bytes
// and cp is a pointer to the bytes to be added....
// _write_function_(outbuffer,cp,cchReadBuffer
}
}
}

CloseHandle(pi.hProcess);

/* close the trace file, pipe handles */
CloseHandle(hReadPipe);

return 0;
}

I tried to pack a portable ve

I tried to pack a portable version of Pidgin and it doesn't work like I want it to. This is the command that I used:

tabscc.exe PortableApps\PidginPortable Pidgin.exe -l PidginPortable.exe

And yet when it finishes extracting, it launches some file called "aspell_readme.txt". Any ideas why exactly?