I use regsvr32 MyCOM.dll
to register my com object for my application. This works fine under my admin account. if a switch the user to a non admin, the program fails. It seems that the COM object is not loaded for the non admin user. Any ideas on why this might be or a possible solution?
相关问题
- Django check user group permissions
- 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?
- Signing an F# Assembly (Strong name component)
- CosmosDB emulator can't start since port is al
- Python instrument drivers
regsvr32 MyCOM.dll
will call the DllRegisterServer exported function in the dll, what happens there is up to the dll. Usually it will register it's CLSID and other registration info under HKEY_LOCAL_MACHINE\software\Classes (Same as HKEY_CLASSES_ROOT for write operations) and so the registration should be visible to every user unless the user has a conflicting registration under HKEY_CURRENT_USER\software\Classes.I'm guessing that the registration is not the problem, but that your COM object does something that prevents it from loading for non admin users (Requesting write access to a key under HKEY_LOCAL_MACHINE etc) You can use Process Monitor and look for ACCESS_DENIED errors and see if that provides any clues.
The other option is to manually register the object under HKEY_CURRENT_USER\software\Classes for the non-admin user. This should rule out registration issues.
COM objects need to be registered by an admin user, usually. (There are subtleties and exceptions that I won't get into here, because based on your description that's not what's going on.)
However, once the COM object has been registered, all users should be able to use it provided that the object was registered with appropriate permissions.