Installing COM add-in

  • Thread starter Thread starter Randy Harris
  • Start date Start date
R

Randy Harris

I've created a COM add-in. The problem I've run into, it won't let non
administrator users install it. Any user that has Administrator privs can,
but no one else. Is there anything that I can do?
 
Are you registering it in HKLM? If so only admins can install it. It would
have to be registered in HKCU for non-admins to be able to install it.
 
Ken Slovak - said:
Are you registering it in HKLM? If so only admins can install it. It would
have to be registered in HKCU for non-admins to be able to install it.

Is it possible to register the add-in entirely in HKCU? The rather clumsy
solution I've come up with is to use 2 install programs. The first must be
run as admin, it adds the entries in HKLM. The second the user runs, adds
the entries to HKCU. I would sure like to find a way to do it with only a
single install.
 
You certainly can register it only in HKCU, in fact it's bad practice to
register both in HKLM and HKCU. It causes all sorts of problems.

If you register in HKLM it makes the addin usable for all users on that
computer. That's called an administrative installation. Installations
registered there do not show up in the COM Add-Ins dialog for the user to
disable/enable.

Registering in HKCU makes the addin available for only the logged in user
(Windows login). It does show up in the COM Add-Ins dialog for the user to
control whether it runs. For a computer with multiple users you would
register it in each user's HKCU hive.
 
Ken Slovak - said:
You certainly can register it only in HKCU, in fact it's bad practice to
register both in HKLM and HKCU. It causes all sorts of problems.

If you register in HKLM it makes the addin usable for all users on that
computer. That's called an administrative installation. Installations
registered there do not show up in the COM Add-Ins dialog for the user to
disable/enable.

Registering in HKCU makes the addin available for only the logged in user
(Windows login). It does show up in the COM Add-Ins dialog for the user to
control whether it runs. For a computer with multiple users you would
register it in each user's HKCU hive.

Ken,

I'm thrashing about here making lots of mistakes trying to get this right. I
would really appreciate it if you could straighten me out.

I initially created the Add-in with the VB6 COM Add-in template and
designer. It worked but would only install for users with admin privilege.
That's when I came up with the "two step" install that I described earlier.

I wrote a program that would create the key in HKCU (following the guide for
VB5 setup in your book). That in itself, however, didn't seem to be enough
on the user workstations. (I noted that the key didn't include a path to
the .dll file). I created a second program that registers the Add-in in
HKLM\Software\Classes\CLSID. The second program must, of course, be run by
an admin user. These two, together, work. It's a really clumsy set up.

Can you tell me what I should be doing to make this a single step, user
installable package?

Randy Harris
 
You don't need admin rights to install, just user rights to install new
software. If the user doesn't have that then an admin would be needed to
install no matter what.

An addin created using VB 6 with a designer will create all the needed
entries on its own when registered. When I'm running in the IDE and then
want to test compiled code I just run regsvr32 on the COM addin DLL and
automagically all the needed registry entries are created.

When I create installers (I use InstallShield myself) they work for normal
users if they can install new software. I don't do anything special. Does
running regsvr32 on your DLL work to set things up?
 
It looks as though you need admin priv (or power user) to register the DLL
with regsvr32. It fails for a user with only User membership.

Randy
 
Then installing any new software would fail for those users. In that case
the admin must install, then the user login can be used from Control Panel's
Add/Remove Programs to do a repair, which would register the addin DLL in
their HKCU\Software\Microsoft\Office\Outlook\Addins hive.
 
Back
Top