1

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

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

最好的方法是什么?

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

4

1 回答 1

1

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

从那里你有很多选择。最简单的是环境中某处的标志(信号量、磁盘文件)。你可以有一个特殊的 url,就像mybho:start它监视的那样。

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

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

于 2010-05-12T00:28:55.010 回答