我有一个IE BHO插件,我只想在用户从我的程序启动IE时启用(该程序使用CreateProcess()
启动IE)。
当用户从我的程序外部启动IE时,我不希望启用此BHO,因为这意味着BHO中的任何问题都可能会破坏用户的正常浏览体验。
最好的方法是什么?
一种方法是注册BHO,启动IE,然后快速取消注册BHO。这似乎有些混乱,因为启动IE的程序崩溃可能导致BHO保持注册。
答案 0 :(得分:1)
您的方法非常容易出错,我建议不要这样做。相反,你的BHO应该总是加载IE,但默认情况下它什么都不做。那么你需要的是告诉它“开始过滤”或“开始录音”或其他什么。
你有很多选择。最简单的是环境中的某个标志(信号量,磁盘文件)。您可以拥有一个特殊的网址,例如它所关注的mybho:start
。
我已经多次这样做了,它有效。
编辑是的,BHO将与其所依赖的任何DLL一起加载到内存中(尽管您可以等待并仅在需要时通过LoadLibrary()
加载它们)。