编辑:有关更多信息,请参阅帖子末尾。
我正在尝试加载通过 Firebreath 框架(1.7.0)创建的插件。我在使用 Internet Explorer 10 的桌面模式下的 Windows 8 上。我已经使用 Firebreath 附带的内置测试 FBTtestPlugin 重现了这一点。失败是静默的,因为创建了对象元素,但没有插件指定的任何属性。如何进行调试?Microsoft Internet Explorer 兼容性工具报告插件无法加载。 (FBTtestPlugin 加载了三个插件,因此出现了三个错误。)
我有其他(非FB)插件在相同的设置下工作(例如这里的例子:http: //msdn.microsoft.com/en-us/library/dd565667 (v=vs.85).aspx工作正常与本网站http://ie.microsoft.com/testdrive/browser/activexfiltering/Default.html中的所有示例一样)。
我尝试了多种安全设置组合,但这是迄今为止我最轻松的设置:
- 工具/安全/ActiveX 过滤:未选中
- Internet选项/安全/Internet:未选中“启用保护模式”
- Internet 选项/安全性/Internet:处于自定义级别。在 ActiveX 下,除了“允许 ActiveX 过滤”等限制性属性外,所有内容都是“启用”的
- 根据这些设置,可以看到各种安全警告。
注意:我不打算保留这些设置。我只想让插件正常工作,然后向后重新启用安全设置。
更新 我部分想通了,现在可以运行 FB 测试 FBTestPlugin。为了使 IE 的调试更容易,我将注册表项 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth 定义为 0,以限制浏览器使用一个进程。不幸的是,对于 IE10,Program Files 和 Program Files (x86) 中的 iexplore.exe 都直接指向 64 位版本的 IE。这会阻止 32 位插件运行(请参阅http://support.microsoft.com/kb/2716529),并且症状是静默失败。
但是,我的插件仍然无法在 IE 中加载,并且上面重新命名的问题仍然是开放的。问题仍然是静默加载失败。但是,我认为这可能与插件配置有关。兼容性测试工具中列出的 CLSID(如上面显示的示例)被列为全 0,而不是有效的 GUID。此外,注册表看起来很时髦:键 HKCR\Company.Name 与 HKCR\Company.Name.1 一样存在,但两者都是空的(而不是像正常工作的插件那样具有 CLSID 子项)。预期的 GUID 确实存在,但使用了一个假名“应用程序。”。我现在正在研究运行 regsvr32 时调用的代码。
谢谢大家!