Internet Explorer无法“完全”加载ActiveX控件

时间:2010-06-08 10:56:22

标签: c++ internet-explorer com activex registry

上下文

我正在将ActiveX控件的安装程序从Per-Machine迁移到Per-User。我通过编写安装程序写入HKCU\Software\Classes而不是HKLM\Software\Classes来完成此操作。

问题

在我的计算机上(启用了UAC的Windows 7),ActiveX控件成功加载。在其他Windows 7测试机器上(一个启用了UAC,一个启用了UAC),控制器“部分”加载。

什么是部分?

当用户使用ActiveX控件访问页面时,Internet Explorer会在窗口顶部的黄色栏中显示警告消息。如果单击栏中的“运行加载项”按钮,控件将变为可见并开始运行,但尝试访问控件属性的Javascript代码将返回错误: Library not registered

机器之间的差异

在开发机器上,从HKCR\CLSID\<GUID>读取成功,而在测试机器上这些读取失败。从HKCU读取开发和测试机器的成功。来自HKLM的读取在测试和开发机器上都失败了。 (我使用Sysinternals Process Monitor收集了读取内容)奇怪的是,如果我使用regedit在测试计算机上查看HKCR\CLSID\<GUID>,则Internet Explorer无法读取的键清晰可见。

问题

如何在测试计算机上加载每用户控件?什么可能导致开发机器和测试机器之间的这种差异?为什么我可以通过RegEdit查看HKCR中的密钥但是Internet Explorer看不到密钥?

感谢任何帮助。谢谢。

0 个答案:

没有答案