/build/static/layout/Breadcrumb_cap_w.png

ActiveX internet component installation

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

or

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?

Thanks
Frank

0 Comments   [ + ] Show comments

Answers (6)

Posted by: plangton 17 years ago
Second Degree Blue Belt
0
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?
Posted by: fschnell 17 years ago
Senior Yellow Belt
0
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.
Frank
==

[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
sqs1.dll=sqs1.dll
msvcrt.dll=msvcrt.dll
mfc42.dll=mfc42.dll
olepro32.dll=olepro32.dll
[sqs1.dll]
file-win32-x86=thiscab
clsid={57DA6C39-02DA-40C6-A225-7A2EB63043C2}
FileVersion=1,0,0,0
RegisterServer=yes
[msvcrt.dll]
FileVersion=4,20,0,6164
hook=mfc42installer
[mfc42.dll]
FileVersion=4,2,0,6256
hook=mfc42installer
[olepro32.dll]
FileVersion=4,2,0,6068
hook=mfc42installer
[mfc42installer]
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
run=%EXTRACT_DIR%\mfc42.exe
Posted by: plangton 17 years ago
Second Degree Blue Belt
0
Hi,

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:

http://msdn.microsoft.com/workshop/components/activex/packaging.asp

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

http://msdn.microsoft.com/workshop/delivery/download/overview/entry.asp

Lots to read ... but anyway

If you want to cheat, try this link:

http://www.myitforum.com/articles/1/view.asp?id=3270

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.

Rgds

Paul
Posted by: fschnell 17 years ago
Senior Yellow Belt
0
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.

FRank
Posted by: plangton 17 years ago
Second Degree Blue Belt
0
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:

http://www.microsoft.com/technet/prodtechnol/ie/reskit/6/part4/c17ie6rk.mspx?mfr=true


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?

Rgds

Paul
Posted by: islander222 17 years ago
Senior Yellow Belt
0
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,
Aidy.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ