我在C#中开发了一个Internet Explorer工具栏,用于从外部应用程序发送和接收URL。它在IE6中运行得很好,但我想在新版本(IE7)中利用标签式浏览,但我遇到了麻烦。在IE7中,每个选项卡都计算一个单独的实例,因此是我工具栏的单独实例。
对于我的生活,我找不到在单个IE窗口中的每个选项卡上显示单个实例的方法。我可以做的就是将其作为com对象注册到ROT并让每个实例进行通信并镜像所有其他实例,但这似乎是不必要的复杂。有人找到了解决方法吗?
答案 0 :(得分:1)
因为你没有多说你的工具栏正在做什么,所以我假设当你有多个标签打开它时会吃掉一些资源......内存,网络,远程源连接等等。 / p>
我的建议是通过监听WindowStateChanged事件来跟踪哪个标签处于活动状态,而不是确保只运行一个实例,然后你可以做各种各样的事情:
答案 1 :(得分:0)
在我看来,你想要一个mutex,只允许一个应用程序实例,或者可能 - 一个应用程序的一个实例提供工具栏的所有实例。
您可以查看msdn了解同步的问题。
罗伯特哈维是正确的,这已成为标准,但getting IE urls from multiple instances appears rather painless。