Many webbased applications require the download and installation of DLLs and other
files. They are distributed in the same fashion as an ActiveX component namely as
CAB files. Inside the CAB file there are the required files and an .INF file. When using
IE possibly a warning message regarding unsigned CAB appears, and when pressing
the install button the files will be placed into directory "C:\windows\downloaded program files"
[Note: Don't try to take a look at it with Windows explorer, it hides all the good stuff. Use
a CMD shell and you see it all.], somehow things get registered and all is fine. Of course,
installation & registration only works with admin rights :-(

I would like to pre-install the software on all workstations and therefore need to know what
magic command the browser uses to install these CAB distributed files. Yes, I could make
before/after snapshots and alike, but I have more than 10 of these things to distribute.
My preference would be to use the real command line which does the magic.

On the internet I found things like

C:\WINDOWS\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 c:\windows\Downloaded Program Files\<package>.inf


C:\WINDOWS\System32\rundll32.exe c:\windows\Downloaded Program Files\<package>.inf

but they don't work. There is apparently a major difference between 'normal' .inf files and
those used for distributing internet components.

Anybody ever solved this?

0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


I'm by no means an expert on this (I just usually repackage these) - but have you tried just registering the DLL files? Or can you post an example of one of these INF files for us to have a look at?
Answered 07/10/2006 by: plangton
Second Degree Blue Belt

Please log in to comment
Here is teh content of teh .inf file, the second file is the sqs1.dll.
Registeruing the .dll did not solve it. Next visit IE will still try to install.

Answered 07/13/2006 by: fschnell
Senior Yellow Belt

Please log in to comment

Well theres lots to learn about how ActiveX controls get installed from this. Microsoft has a site describing how to build these INF files and ActiveX downloads:

And this site has an overview of the entire component architecture:

Lots to read ... but anyway

If you want to cheat, try this link:

It says:

An ActiveX component is usually packaged as a .CAB file. To prepare for distribution, you should first extract the contents of the .CAB file to your distribution point. This usually consists of one .INF file and one or more .DLL files.

On Windows NT and 2000 these files first need to be copied to the client’s 'WINNT\Downloaded Program Files' directory. Then you can use your preferred software packaging program to execute the .INF file from the command line using Rundll32.EXE.

Note: Rundll32.EXE can also be used to install Windows optional components from the command line.

Details on the optional command line switches used with Rundll32.EXE can be found in Microsoft’s Internet Explorer 6 Resource Kit documentation, Chapter 17 – Working With .INF Files.

For a simple install that doesn’t require a reboot, the syntax is simply:

%SYS32%\Rundll32.EXE %WIN%\Downloaded Program Files\Component.INF

Sounds pretty easy to me :) Let us know if it works.


Answered 07/13/2006 by: plangton
Second Degree Blue Belt

Please log in to comment
Thanks for the links Paul, and the rundll command line.
But as said in the original post (and I retried just now)
it just does not work. After executing that line IE still
wants to download and install the package.

The files are stored in "Downloaded Programfiles" but after
executing the rundll32 command line the required registry
keys are not there.

Answered 07/13/2006 by: fschnell
Senior Yellow Belt

Please log in to comment
Hi fschnell,

Hmmm yeah sorry you already found that - perhaps its not possible... the only thing I can suggest is trying setupx.dll instead of setupapi as per:

So the EXACT command line I would run would be:

C:\WINDOWS\System32\rundll32.exe setupx.dll,InstallHinfSection DefaultInstall 132 "c:\windows\Downloaded Program Files\<package>.inf"

Don't forget those "" around the long file name. If this doesn't work, I don't spose you could give me a copy of the active X control to play around with, or is it not public domain?


Answered 07/16/2006 by: plangton
Second Degree Blue Belt

Please log in to comment
Hi Frank,

All I can say really, is that we have done a high volume of 'ActiveX' components here and what we do is add the dll/ocx/exe's (whatevers in the CAB) to the MSI via the component wizard - making sure they are registered. They don't neccessarily need to go the 'Downloaded program files'.

Once they are regsitered correctly from whatever location you wish - then you do not need the .inf at all.

As I said we have done a few and have had no problems with this technique.

Hope this helps,
Answered 07/18/2006 by: islander222
Senior Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity