I'm working on a web app that needs an ActiveX control to function. It installs just fine when the user has admin privileges, but fails to load otherwise. Is this by design and if so, is this documented somewhere? (preferably MSDN)
相关问题
- How to fix IE ClearType + jQuery opacity problem i
- Inheritance impossible in Windows Runtime Componen
- how to get running process information in java?
- Is TWebBrowser dependant on IE version?
- How can I have a python script safely exit itself?
相关文章
- 如何让cmd.exe 执行 UNICODE 文本格式的批处理?
- 怎么把Windows开机按钮通过修改注册表指向我自己的程序
- Warning : HTML 1300 Navigation occured?
- Bundling the Windows Mono runtime with an applicat
- Windows 8.1 How to fix this obsolete code?
- IE/Edge not applying transform: translate to table
- CosmosDB emulator can't start since port is al
- Number of Javascript lines executed during page lo
You can if using Vista with IE8.
http://msdn.microsoft.com/en-us/library/dd433049%28VS.85%29.aspx
Complex answer: Yes. The user's account needs to be part of a group that affords the privelege of registering libraries (dll) or controls (ocx) or needs to be directly assigned the privelege.
Simple answer: No. Only accounts with the administrative privelege to install OCXs or DLLs can install Active-X controls (by default those accounts are part of the Administrators, Domain Administrators or Power Users groups).
Edit: I guess this question was changed... Yes, this is by design.
Actually, none of these answers are completely correct; if you install an ActiveX control in a per-user basis it will work just fine without Administrative privileges, regardless of the group that the user is in. Bascially this involves installing it to HKEY_CURRENT_USER instead of HKEY_LOCAL_MACHINE.
Depending on what your activex control is written in this may be easy or it may be hard to change; with ATL 9 it's pretty easy, as you just have to call a function:
FireBreath does this by default so that admin privileges aren't neccesary to install the plugin/control; it also has a workaround for older versions of ATL (ATL 9 is VS 2008). This is all C++, so if your control is written in something else I don't know how to fix it, but that should at least get you started.