Jump to content

Rebuilding Inno Setups


Recommended Posts

  • 6 months later...

@ZoSTeR: thank you VERY, VERY MUCH! :thumbup

After looking for a simple way to install extreme movie manager for a while you came up with my answer!

-I couldn't really repack it, as there was a bunch of unknown runtime DLLs (and nowhere was a list of them to find...)

-You couldn't use AutoIt either as, you would get messageboxes for every tuntime DLL that's already on your system. Not always for the same DLLs, and not always the same messageboxes...

Anyways, it was VERY frustrating to even think about it! Until I found out it's using INNO setup and that I remembered your post.

Now that I unpacked it, I know exactly how to proceed:

-The program files can just copied over (ie: $OEM$\$Progs) or make a sfx with them (including your current DB)

-There are no registry entries

-We also have to remember the start menu shortcuts :rolleyes:

(Or even better - use /SAVEINF so it doesn't install the runtimes, it works great)

-Finally, we can recopy DLLs without overwriting (just the ones missing from the list, and regsvr32 when needed, which is easy to do with a .cmd or vbscript...)

I got the list of runtime DLLs (already!! 41 of them)

COMCAT.DLL (could be unsafe to install)
ComCtl32.ocx (VB Runtimes)
COMDLG32.OCX (VB Runtimes, not safe to overwrite)
DAO360.DLL (part of MDAC, and let's hope that app doesn't use DAO... scary!)
DOWNLOADCONTROL.OCX (can't find any references to that, must be renamed)
expsrv.DLL (part of MDAC)
Mscomctl.ocx (VB Runtimes)
msexch40.DLL (part of MDAC)
msexcl40.DLL (part of MDAC)
mshtml.TLB (comes with IE)
MSINET.ocx (old internet xfer control)
msjet40.DLL (part of MDAC)
msjetoledb40.DLL (part of MDAC)
msjtes40.DLL (part of MDAC)
msltus40.DLL (part of MDAC)
mspbde40.DLL (part of MDAC)
msrd2x40.DLL (part of MDAC)
msrd3x40.DLL (part of MDAC)
msrepl40.DLL (part of MDAC)
mstext40.DLL (part of MDAC)
MSVBVM60.DLL (VB Runtimes, could be unsafe to install)
MSWinsck.ocx (old winsock control)
msxbde40.DLL (part of MDAC)
OLEAUT32.DLL (could be unsafe to install)
OLEPRO32.DLL (could be unsafe to install)
RICHED32.DLL (not safe to overwrite)
RICHTX32.ocx (VB Runtimes)
STDOLE2.TLB (could be unsafe to install)
TABCTL32.ocx (VB Runtimes)
VB6IT.DLL (VB italian file...)
WININET.DLL (already on any system with IE4+, not safe to overwrite)
winmm.DLL (old multimedia dll)
xpControlAdv01.ocx (can't find any references to that, must be renamed)
xpControlAdv02.ocx (can't find any references to that, must be renamed)
xpControlBase.ocx (can't find any references to that, must be renamed)

(Right now I'm even considering rebuilding it, using the onlyifdoesntexist flag and no confirmoverwrite flags... That should fix it)

Anyways, you made this possible :)

[edit] after going thru all this, when I look at the list of DLLs, it's sad to say that all of it except about a half dozen OCX'es shouldn't be needed on most systems... Lots of very old stuff too (Win 3.1/DAO technology "under the hood" type of app)

Link to comment
Share on other sites

Just in case someone stumbles across this again...

innounp.exe (v0.14) had different switches now, -x will extract all the files and the script

Repacking with a modified script worked well, but I had more changes to do than I thought I would have to (most likely because the original is packed with an older version)

Things I had to change:

I Had to add

DefaultGroupName=eXtreme Movie Manager

at the top of the script to fix the install group name.

Types also gave me some problems. They were comma separated:

Name: "main_program"; Description: "Main Program Files"; Types: custom,compact,full;

The commas have to be replaced by spaces like such:

Name: "main_program"; Description: "Main Program Files"; Types: custom compact full;

Else it won't even compile.

I also had to add a [Types] section before [Components]:

Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

Also, some "dangerous" DLLs (like WININET.DLL, which probably shouldn't be included anyways...) had to have the allowunsafefiles flag added for the project to compile.

DLL wise, I noticed also that the installer overwrites blindly DAO360.DLL with the included version (no version checking, rather unprofesionnal of them). I changed it to onlyifdoesntexist instead. (let's hope it doesn't REALLY rely on DAO for database... scary thought!)

Finally, somehow when I use it with /SP- /VERYSILENT (no need for /LOADINF anymore) it still runs the app after installing. So I had to take out the [Run] section...

(I decided to leave the desktop icon in there and to delete it post-install)

To sum things up, I wouldn't say it was hard to fix by any means, but it sheds some light on a sub par installer. The app itself might be good but the author ought to fix the installer - the runtimes part anyways...

As a reward, I get a functionnal (and unattended) non-broken, non system files overwriting installer. I had been waiting on that for all too long. One less of my few "problem apps" to install on my to-do list :D (at least, most others can be easily captured/repackaged) Inno setup is quite nice after all. I might use it more soon

[edit] After finally including it on a unattended disc. It turns out it will prompt for some of the DLLs (mostly MDAC ones) to keep/replace still. I'll try adding onlyifdoesntexist to all the system DLLs or perhaps taking the obviously useless out (might be a better option after all...) Oh well.

Link to comment
Share on other sites

  • 6 months later...


I found this post and decided to test it's knowledge with the latest SpywareBlaster 3.4, that doesn't support anymore silent installs.

I downloaded the latest Inno Setup (5.0.8) and Innounp (016).

It's so easy!! :blink::blink:

I even can choose the install path for the program!

I have only one problem with the Group icons:

I don't want to put them in »Start»Programs»SpywareBlaster

but in a choosen group.

So, inside the script, I go to

Name: "{group}\SpywareBlaster"; Filename: "{app}\spywareblaster.exe";
Name: "{group}\SpywareBlaster AutoUpdate Configuration"; Filename: "{app}\sbautoupdate.exe"; Parameters: "-config";
Name: "{group}\SpywareBlaster Help"; Filename: "{app}\sbhelp.chm";

and add: Name: "{group}\Defense\SpywareBlaster"...........

But after compiling and installing, the group icons appear as:

»Start»Programs»Default»Defense and not as expected »Start»Programs»Defense

What am I doing wrong?

Thanks in advance

Link to comment
Share on other sites

I am testing the knowledge from this thread with the latest Spybot Search & Destroy version 1.4.

I use the latest InnoSetup version 5.1.4.

When I try to compile, it gives an error: "Line 200: Parameter "Types" includes an unknown type".

It is as if Spybot installer was incompatible or more advanced than InnoSetup.

Has anyone any idea?


Link to comment
Share on other sites


You should know that when you unpack program it not means that you get all stuff what guys put over there.

In your case, if you open inno help file, you can find that it support next types:

full, custom, and compact. So, blind cause that error.

And remember, programmers not always follow rules.


Link to comment
Share on other sites

  • 2 weeks later...


I don't want to put them in »Start»Programs»SpywareBlaster
open the iss file using ISTool, click on "options" in the toolbar, then select the Program Group tab and add the directory you want to use to the "Default Group Name" box, which should be blank which is why Default is created.

@Lost Soul

If spywareblaster.exe is in the {app} folder which was created when you extracted the setup, make sure the iss file and the {app} folder are in the same directory, that's all I can think of.

Here is the setup I use, the desktop icon creation has been removed, the databases are the latest versions (6/7/05) and an uninstall icon has been added to the group icons.

Link to comment
Share on other sites

i did the same thing remove the programs folder add the last definitions but i still have that nag screen "getting started" when i first start the program. how can i lose that?

Link to comment
Share on other sites


I forgot to mention that in my last post, my exe also has a registry entry added


this will stop the tutorial when spywareblaster starts up.

You could add the registry entries for the IE protection as well but it would be a ballache to keep it updated with each new version or database

Link to comment
Share on other sites

@Lost Soul

download and install alst innosetup and istool. then unpack innounp to a folder. here u put also the SpywareBlastersetup34.exe. after that u run %systemdrive%\folder name\innounp.exe -x spywareblastersetup34.exe.this will extract the files and install_script.iss. then u open install_script.iss with istool (http://www.istool.org/default.aspx/) and edit it the way u want. then save. last step is to open the install_script.iss with innosetup program and hit compile. that is it.

Edited by boooggy
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...