首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

BHO怎的接收外部程序发送来的消息

2013-01-06 
BHO怎样接收外部程序发送来的消息。开发了一个BHO,目的是在BHO中定义了一个消息的过程,外部程序可以发送消

BHO怎样接收外部程序发送来的消息。
开发了一个BHO,目的是在BHO中定义了一个消息的过程,外部程序可以发送消息来执行BHO中这个过程的功能。

本为已设计好的代码是在BHO中建了一个隐藏的窗口,外部程序找到这个隐藏窗口的句柄来发送消息。而这个隐藏窗口在IE启动时创建,退出时释放。

但这个设计在IE6上运行没问题,但如果在IE7中打开多个选项卡时关闭时就出错了。
[解决办法]
IE7貌似采用双进程来实现的!
[解决办法]
隐藏窗口应该在BHO初始化的时候创建,BHO销毁时一起销毁。关闭时出错应该是你的代码BUG,从你的设计看不出是什么原因。
[解决办法]
打开多个选项卡时关闭时就出错了
我觉得你是不是自己已经找到原因了。
你让你的资源 首先要保证不冲突.

而且在IE7以后,如何开发一个安全的ACTIVIEX(msdn) 就有说明,你要让你的程序都包含在一个程序集里.
不能有全局对象什么的. (原话,不记得了,大概意思是这样的), 就是因为IE7以后可以开多个TAB,每个都是一个新的IE. 所以你要自己同步或者单一实例化你的部分资源了.
[解决办法]

引用:
打开多个选项卡时关闭时就出错了
我觉得你是不是自己已经找到原因了。
你让你的资源 首先要保证不冲突.

而且在IE7以后,如何开发一个安全的ACTIVIEX(msdn) 就有说明,你要让你的程序都包含在一个程序集里.
不能有全局对象什么的. (原话,不记得了,大概意思是这样的), 就是因为IE7以后可以开多个TAB,每个都是一个新的IE. 所以你要自己同步或者单一实例化你的部分资源了.


正是这样,IE7新开选项卡就实例化一个BHO,应该是你的隐藏程序在这过程中实例化了太多,将它静态化就好了,保证只有一个隐藏程序存在。

热点排行