我有一个IE BHO插件,我只想在用户从我的程序启动IE时启用(该程序使用CreateProcess()启动IE )。
我不希望当用户从我的程序之外启动IE时启用此BHO,因为这将意味着BHO中的任何问题都可能潜在地扰乱用户的正常浏览体验。
做这件事最好的方法是什么?
一种方法是注册BHO,启动IE,然后快速注销BHO。这看起来有点混乱,因为启动IE的程序崩溃可能会导致BHO保持注册状态。
发布于 2010-05-12 08:28:55
你的方法很容易出错,我建议你不要这么做。相反,你的BHO应该总是与IE一起加载,但在默认情况下,它应该什么也不做。那么你需要的是一种告诉它“开始过滤”或“开始记录”或其他任何东西的方法。
从那里你有很多选择。最简单的是环境中某个地方的标志(一个信号量,一个磁盘文件)。你可以有一个特殊的url,比如它监视的mybho:start。
我已经做过很多次了,它是有效的。
编辑是,BHO将连同它所依赖的任何DLL一起加载到内存中(尽管您可以等待并仅在需要时通过LoadLibrary()加载它们)。
https://stackoverflow.com/questions/2815317
复制相似问题