在启用特定BHO的情况下启动IE

时间:2010-05-12 00:13:47

标签: c++ internet-explorer bho iwebbrowser2

我有一个IE BHO插件,我只想在用户从我的程序启动IE时启用(该程序使用CreateProcess()启动IE)。

当用户从我的程序外部启动IE时,我不希望启用此BHO,因为这意味着BHO中的任何问题都可能会破坏用户的正常浏览体验。

最好的方法是什么?

一种方法是注册BHO,启动IE,然后快速取消注册BHO。这似乎有些混乱,因为启动IE的程序崩溃可能导致BHO保持注册。

1 个答案:

答案 0 :(得分:1)

您的方法非常容易出错,我建议不要这样做。相反,你的BHO应该总是加载IE,但默认情况下它什么都不做。那么你需要的是告诉它“开始过滤”或“开始录音”或其他什么。

你有很多选择。最简单的是环境中的某个标志(信号量,磁盘文件)。您可以拥有一个特殊的网址,例如它所关注的mybho:start

我已经多次这样做了,它有效。

编辑是的,BHO将与其所依赖的任何DLL一起加载到内存中(尽管您可以等待并仅在需要时通过LoadLibrary()加载它们)。