我有一个IE BHO插件,仅当用户从程序中启动IE时才希望启用它(该程序使用CreateProcess()启动IE)。

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

最好的方法是什么?

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

最佳答案

我建议您的方法很容易出错。相反,您的BHO应该始终加载IE,但默认情况下它什么都不做。然后,您需要的是一种告诉它“开始过滤”或“开始记录”或其他方法的方法。

您从那里有很多选择。最简单的是环境中某处的标志(信号灯,磁盘文件)。您可以有一个特殊的URL,例如它监视的mybho:start

我已经做过很多次了,而且有效。

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

09-11 05:37