Несколько вкладок в IE7 с одним экземпляром панели инструментов - PullRequest
4 голосов
/ 11 июня 2009

Я разработал панель инструментов для Internet Explorer в C # для отправки и получения URL-адресов из внешнего приложения. Он отлично работал в IE6, но я хотел воспользоваться преимуществами просмотра с вкладками в новой версии (IE7), но я столкнулся с проблемой. Похоже, в IE7 каждая вкладка учитывает отдельный экземпляр и, следовательно, отдельный экземпляр моей панели инструментов.

Насколько я понимаю, я не могу найти способ, чтобы один экземпляр появлялся на каждой вкладке в одном окне IE. Все, что я могу сделать, это зарегистрироваться как ROT-объект в ROT и заставить каждый экземпляр общаться и отражать все остальные, но это кажется слишком сложным. Кто-нибудь нашел обходной путь для этого?

Ответы [ 2 ]

1 голос
/ 29 ноября 2012

Поскольку вы не очень много рассказали о том, что делает ваша панель инструментов, я предполагаю, что когда у вас открыто несколько вкладок, она потребляет некоторые ресурсы: память, сети, соединения с удаленным источником и т. Д. 1001 *

Вместо того, чтобы убедиться, что работает только один экземпляр, я предлагаю отслеживать активную вкладку, прослушивая событие WindowStateChanged, тогда вы можете сделать множество вещей:

  • Отключите связь, пока она не активна.
  • Уведомить удаленный источник о том, что вкладка не активна.
  • Просто не показывать уведомления на неактивных вкладках.
  • Остановите все потоки, запущенные на панели инструментов.
  • Etc.
0 голосов
/ 26 ноября 2012

Мне кажется, что вы хотите мьютекс , чтобы разрешить только один экземпляр приложения или, возможно, - один экземпляр приложения, питающий все экземпляры панели инструментов.

Вы можете проверить msdn на ошибки при синхронизации.

Роберт Харви прав, и это стало стандартом, но получение URL-адресов IE из нескольких экземпляров выглядит довольно безболезненно .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...