|
Description
KaKeeware IETOTALX & KaKeeware IETOTALXX are quick hacks that make it possible to use well-known
Total Commander's plug-ins:
from a command line.
Suggested solution is to use KaKeeware IETOTALXX. And only if it doesn't work, you can use KaKeeware IETOTALX.
Copyright notice
Please note that KaKeeware IETOTALX & KaKeeware IETOTALXX rely fully on these 3 plugins:
and although KaKeeware IETOTALX & KaKeeware IETOTALXX embed (for convenience) the files that
come with these plugins, the copyright to all these files belong to the authors mentioned above.
KaKeeware IETOTALX & KaKeeware IETOTALXX support all the plugins supported by IETOTAL/InstallExplorer
(as copied from FILE_ID.DIZ/Web site that comes with different InstallExplorer versions, these are:
Wise, Vise, Inno Setup, Gentee; Installer, InstallShield, NullSoft Installer (ver>=1.1o), SetupFactory, Eschalon).
History
2006/12/30: Added IETOTALXX
2006/12/21: Fixed small bug in IETOTALX. Thx to Pedro L.
How to use IETOTALX & IETOTALXX?
From a command line, run:
IETOTALXX foo.exe
or
IETOTALX foo.exe
It will extract all the files in foo.exe to _foo.exe directory.
Wildcards are supported, but for stability reasons, it's better to use separate instances
of KaKeeware IETOTALX or KaKeeware IETOTALXX for each installer.
The easiest way to do it is to use a for loop from a command line, i.e.:
for %k in (*.exe) do ietotalxx "%k"
or
for %k in (*.exe) do ietotalx "%k"
is better than
IETOTALXX.exe *.exe
or
IETOTALX.exe *.exe
Example of IETOTALXX usage
ietotalxx executed with WinPcap installer

Extracted Files:

Example of IETOTALX usage
ietotalx executed with WinPcap installer

Extracted Files:

Technical note about IETOTALXX
KaKeeware IETOTALXX is an upgrade to KaKeeware IETOTALX proggie.
As it turns out, in July 2006, Domo released a new plug-in for Total
Commander, which is called InstallExplorer 0.9.1.
It is a replacement for an old IETOTAL (InstallExporer Port) plug-in.
After running a few tests, I decided to switch to this one
especially that it seems to be more stable and crashes happen
less often. The good news is that it seems to work most of the time
and - the files are extracted properly...
So... I came back to a previous idea and I rewrote some parts of IETOTALX
to use the new plug-in. "Rewriting" actually means coming back to roots...
i.e. writing a proggie handling plug-in in a 'as-designed' way.
In particular: removing API hooking code which makes the new proggie
much simpler and easier...
It also makes it (hopefully :) work on Windows 9x (due to Api Hooking
I used in IETOTALX, it didn't work on 9x - Thx Pedro L. for spotting this).
Ah... you may ask.. Why IETOTALXX? Well... I wanted to keep the old IETOTALX
on the page + IETOTALX2/IETOTALY names sucked. So... There you go :)
There's a guard thread created at the beginning of the main routine that will kill the instance
of IETOTALXX, if the main thread haven't finished its work after 300 seconds.
I added SEH frame before calling the function that extracts the files to make sure
we extract as many of them as possible.
Feel free to play with the code to modify it up to your needs.
Last, but not least - you need Perl to compile the sources :-)
Credits:
- Pedro L. - the man who still remembers Turbo Debugger :)
- Jared B. - the man behind Universal Extractor (from http://www.legroom.net/mysoft)
both, for making me coming back to the old code :)
Technical note about IETOTALX
At the beginning, the task seemed to be trivial.
I thought I will just follow Total Commander WCX's specs
in order to make it work i.e.:
- Open Archive
- Extract each file in the archive one by one
- Close the archive.
Unfortunately it didn't work as it should.
The program kept crashing or hunging for no obvious reason
while the plugin tried to extract the files.
On the other hand, listing the files within the archive
seem to be more stable, so...
To solve the stability problem, I ended up with a dirty solution that relies on the fact
that plugins need to unpack the files before listing their
content. I list files, and drop them in a temp. directory
which is not a standard Windows temp directory, but the directory
that is provided by a hooked version of GetTempPathA.
Also, RemoveDirectoryA and DeleteFileA functions are patched
to preserve the "temporary" files - that we extract and want to keep - from being deleted.
There's a guard thread created at the beginning of the main routine
that will kill the instance of KaKeeware IETOTALX, if the main thread
haven't finished its work after 60 seconds.
Feel free to play with the code to modify it up to your needs.
As all the filenames are listed, you may add a feature
to properly rename the files wis?.tmp\file????_*.bin files.
Last, but not least - you need Perl to compile the sources :-)
Requirements
Windows 2000/XP or newer
License
Freeware+sources freely available.
Download
ietotalxx.zip
ietotalx.zip
|