如何在Edge IE兼容模式下启用BHO?官方支持但无法触发
Edge IE兼容模式下BHO无法触发的排查与修复步骤
一、修正BHO注册路径
Edge IE兼容模式对BHO的注册有额外要求,除了原生IE的注册项,还需补充Edge专属路径:
- 64位系统下,在
HKLM\Software\Wow6432Node\Microsoft\Edge\IECompat\Explorer Bars(32位系统对应HKLM\Software\Microsoft\Edge\IECompat\Explorer Bars)下,添加你的BHO的CLSID子项,子项内设置Default值为BHO名称,CLSID值为你的BHO的CLSID字符串。 - 确认原生IE的注册项(
HKLM\Software\Microsoft\Internet Explorer\Explorer Bars及对应Wow6432Node路径)配置正确,包括CLSID和DisplayName等键值。
二、验证Edge IE模式配置
- 确认目标站点已被添加到Edge的IE模式站点列表,且兼容模式设置为IE11,而非更低版本。
- 完全关闭所有Edge进程(包括任务管理器中的后台Edge进程),重新启动浏览器后再次测试。
三、BHO编译与权限检查
- 将BHO编译为32位版本,Edge IE模式默认采用32位IE内核,64位BHO无法被加载。
- 为BHO的DLL添加数字签名,未签名的插件可能被Edge的安全策略拦截;若临时测试,可通过组策略关闭“仅加载已签名的ActiveX控件”限制。
- 在BHO的
SetSite方法中加入日志记录(例如写入本地文本文件),验证BHO是否被内核调用,以此区分是加载失败还是业务逻辑问题。
四、调整组策略与安全设置
- 打开组策略编辑器,定位到
计算机配置>管理模板>Microsoft Edge>配置Internet Explorer集成,设置为“Internet Explorer模式”,同时启用“允许Internet Explorer模式使用Browser Helper Objects”选项。 - 排查Windows Defender或第三方杀毒软件,确认未拦截BHO的DLL加载,可临时关闭防护功能进行测试。
内容的提问来源于stack exchange,提问作者SachinD
相关产品推荐
相关产品推荐

