我有一个 IE BHO 插件,我只想在用户从我的程序启动 IE 时启用它(程序使用 CreateProcess()
启动 IE)。
我不希望当用户从我的程序外部启动 IE 时启用此 BHO,因为这意味着 BHO 中的任何问题都可能会扰乱用户的正常浏览体验。
执行此操作的最佳方法是什么?
一种方法是注册 BHO,启动 IE,然后快速注销 BHO。不过,这似乎有些困惑,因为启动 IE 的程序崩溃可能会导致 BHO 保持注册状态。
最佳答案
你的方法很容易出错,我建议不要这样做。相反,您的 BHO 应始终加载 IE,但默认情况下它不应执行任何操作。那么您需要的是一种告诉它“开始过滤”或“开始记录”或其他任何方式的方法。
你有很多选择。最简单的是环境中某处的标志(信号量、磁盘文件)。你可以有一个特殊的 url,比如它监视的 mybho:start
。
我已经这样做了很多次,它很有效。
编辑 是的,BHO 将连同它所依赖的任何 DLL 一起加载到内存中(尽管您可以等待并仅在需要时通过 LoadLibrary()
加载它们).
关于c++ - 在启用特定 BHO 的情况下启动 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815317/