0

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

非常感谢!

我已经编写了这样的插件:http: //www.codeproject.com/Articles/37044/Writing-a-BHO-in-Plain-C。但它仅在用户单击 IE 齿轮上的项目时运行。我想在 IE 打开时运行这个插件。

谢谢

4

2 回答 2

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 通过运行命令 regsvr32.exe /u 来完成。

于 2012-05-11T03:22:46.150 回答
0

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

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

于 2012-05-08T15:50:07.823 回答