BHO 在 64 位机器上不显示消息框

BHO does not display messagebox in 64bit machine

我已经在 32 位机器上实现了 BHO。它在我的机器上运行良好。我发现了 2 个观察结果。

  1. BHO 安装 运行 在具有 .net 框架的 64 位机器上 - 工作完美。在 OnBeforeNavigate2 事件上显示消息框。

  2. 在 64 台机器上安装 BHO w/o .net 框架。手动安装 .net 框架和 运行 设置。它正在完美安装。当我打开 IE 时,它会给我一个启用 BHO 的弹出窗口。但是,它不显示消息框。 :(

我想知道framework related issue哪里出了问题,为什么messagebox不工作?或者我必须手动包含任何程序集。如果是,我想知道在那种情况下缺少哪个程序集。我试过使用 dependency walker 但不知道到底缺少什么 - 没有错误。

我想post回答我的问题。

在对 64 位 IE 中 运行 BHO 的不同方法进行了几次研究和试验后,我找到了解决方案。

为了 运行 64 位 IE 中的 BHO,您必须使用 64 位 regsvr32.exe 而不是 32 位注册 BHO。

默认,32bit regsvr32.exe 运行s everytime 所以我们去 regsvr32 的特定位置和 运行 命令 这样就可以了

%systemroot%\System32\regsvr32.exe

这是执行命令的最简单方法(适用于 64 位和 32 位系统)。

希望对您的问题也有帮助。