如何确定我的BHO中何时打开IE(Internet Explorer)浏览器?

时间:2012-05-08 04:25:17

标签: internet-explorer plugins com atl bho

我为IE编写了一个插件:当IE打开时,我的插件会自动显示一个与用户交互的对话框。但是当我打开IE时,我无法确定将调用哪个函数(我将实现)。你能救我吗?

非常感谢!

我写过这样的插件:http://www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-C。但它只在用户点击IE设备上的项目时运行。我想在IE打开时运行这个插件。

由于

2 个答案:

答案 0 :(得分:0)

IE将调用您的IObjectWithSite :: SetSite()实现。这是您与浏览器的第一次互动。

注意:此时您可能会或可能无法显示对话框。 IE的启动过程复杂且高度异步。如果您尝试过早显示对话框,则可能会挂起。如果是这种情况,您应该将异步消息发回给自己以稍后显示对话框。或者,您可以接收DWebBrowserEvents2 :: DocumentComplete并在第一页加载完成时显示对话框。

答案 1 :(得分:0)

我找到了解决方案。本教程拯救了我的生命:http://www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-C

只需写一个正常的BHO。然后安装它。 安装BHO只需要一个进程调用我们的BHO的DllRegisterServer函数。这可以通过regsvr32.exe实用程序简化。只需运行命令regsvr32.exe,即可​​注册BHO。要卸载BHO,进程需要调用我们的BHO的DllUnregisterServer函数。这也可以通过运行命令regsvr32.exe / u。

通过regsvr32.exe来完成