?
Solved

Installing an ActiveX Control when the user does not have write access to windows system32 directory

Posted on 2003-03-21
7
Medium Priority
?
1,526 Views
Last Modified: 2013-12-25
I am deploying an ActiveX dll written using VB6 over a company intranet. The control installs and runs fine on systems where the browser user has local admin privileges.


On some machines the control fails to install itself. A look at the log that results from the ActiveX install looks like this:


=====================================================
*** Code Download Log entry (21 Mar 2003 @ 15:30:29) ***

Code Download Error: (hr = 800f0233) Cannot copy to specified target.



Operation failed. Detailed Information:

     CodeBase: https://myapp.mycompany.com/docnet/TSPPrint.CAB

     CLSID: {7FA4D544-DCE2-408D-8A72-E7C33E74A321}

     Extension:

     Type:



LOG: Item TSPPrint.dll being processed.

--- Detailed Error Log Follows ---

LOG: Download OnStopBinding called (hrStatus = 0 / hrResponseHdr = 0).

LOG: Item TSPPrint.dll being processed.

LOG: Item psapi.dll being processed.

LOG: Item acrobat.tlb being processed.

LOG: Item scrrun.dll being processed.

LOG: Item msvcrt.dll being processed.

LOG: Item COMCTL32.OCX being processed.

LOG: Item MSVBVM60.DLL being processed.

LOG: Item OLEAUT32.DLL being processed.

LOG: Item OLEPRO32.DLL being processed.

LOG: Item ASYCFILT.DLL being processed.

LOG: Item STDOLE2.TLB being processed.

LOG: Item COMCAT.DLL being processed.

LOG: URL Download Complete: hrStatus:0, hrOSB:0, hrResponseHdr:0, URL:(https://myapp.mycompany.com/docnet/TSPPrint.CAB)

LOG: Setup Hook AddToRegHook was executed successfully.

ERR: Setup Failed Error Code: (hr) = 800f0233, installing: COMCTL32.OCX to C:\WINDOWS\System32 destination code(b)

LOG: Reporting Code Download Completion: (hr:800f0233 (FAILED), CLASSID: 7fa4d544..., szCODE:(https://myapp.mycompany.com/docnet/TSPPrint.CAB), MainType:(null), MainExt:(null))
========================================================================

This is because the user does not have write access to the system32 directory (i.e. no local admin privileges).

What are my options here? Do I try to install the dlls/ocxs listed to other directories? Is this even possible? Is the only option to have the corporate IT department unlock the appropriate directories?


Mike
0
Comment
Question by:mlindeboom
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 3

Accepted Solution

by:
ignacioperez earned 500 total points
ID: 8184388
Not being a system admin, even when the user were able to write in the System32 directory, he coulden't register it, so, in any case, you need an administrator to do it.

Notes: If you are trying to install the active x over a W98 / W95 server you won't have much of a problem, but on a NT / 2000 you need the user to be an admin. By the way, the dll file can be in any directory in order to be registered. All you have to do is set the path when you call the regsvr32
0
 
LVL 1

Expert Comment

by:hmadhur
ID: 8186305
Hi
Sorry for my ignorance, but I am not able to determine which software you are using to create the setup file. If you are using Package and Deployment wizard, then in the wizard itself you can specify to install the DLL in the user's application path {App Path}.

Regards
Madhur
0
 
LVL 3

Assisted Solution

by:kokoloko
kokoloko earned 500 total points
ID: 8195072
Hello
When you are in WinNT/2K, try using 'runas' in the command line.

runas /profile /env /user:administrator "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
This will open an IE window that has administrative privileges. Then you can navigate to your website (https://myapp.mycompany.com/docnet/....), and install the ActiveX.
The downside of this approach is that runas will ask you for the Administrator's password. If this is not a problem, then it would work for you.

If this is not the case, you could try using the CreateProcessAsUser API to make an exe file that would be distributed and executed in the user's machines, so that the password is handled directly inside the code.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 6

Expert Comment

by:GPrentice00
ID: 9053445
This question has been classified as abandoned.  I will make a recommendation to the moderators on its resolution in a week or two.  I would appreciate any comments by the experts that would help me in making a recommendation.

It is assumed that any participant not responding to this request is no longer interested in its final deposition.

If the asker does not know how to close the question, the options are here:
http://www.experts-exchange.com/help/closing.jsp

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER

GPrentice00
Cleanup Volunteer
0
 
LVL 3

Expert Comment

by:kokoloko
ID: 9070757
Count me as interested
0
 
LVL 6

Expert Comment

by:GPrentice00
ID: 9116281
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

 -->Split between ignacioperez and kokoloko

Please leave any comments here within the next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER

GPrentice00
Cleanup Volunteer
0
 
LVL 6

Expert Comment

by:GPrentice00
ID: 9116285
appears to be one where the answer is "It cant be done under those circumstances", as even the alternatives still require some compromises.  Such answers although undesirable, are acceptable.  If the asker is concerned about the points, it would be acceptable to post a request here for the point value to be lowered first for a split or reward.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
This article describes how to use a set of graphical playing cards to create a Draw Poker game in Excel or VB6.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Suggested Courses
Course of the Month13 days, 11 hours left to enroll

801 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question