![]() |
|
|
![]()
|
|
| nerdy_weirdie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
Добрый день. У меня возникла странная проблема от которой не понятно как избавиться. Задача казалось бы обычная и простая выполнить код javascript в документе из IWebBrowser2.
Для того чтобы выполнить скрипт запрашиваю интерфейсы IWebBrowser2->IHTMLDocument2->IHTMLWindow2 и затем выполняю скрипт execScript(). Но появилась проблема обойти которую совершенно непонятно как. При получении IHTMLWindow2 из IHTMLDocument2 в вероятностью где-то 1 из 3 интерфейсы заклинивает и больше не отклинивает пока не прибъешь хотя бы один а часто надо и все процессы IE в системе, но при убийстве даже одного процесса закрывается много окон - тех с которыми пользователь работает. заклинивание интерфейса выражается следующим образом: IHTMLDocument2->get_parentWindow() иногда отрабатывает нормально, но с высокой вероятностью вернет 0x80040154 Class not registered. Со второго и всех последующих запросов у IWEbBrowser2 всех эти интерфейсов get_parentWindow возвращает 0x80070582 Class allready registered. Пробовал закрывать браузер и открывать заново(IWebBrowser2->Quit) , но get_parentWindow всё равно не начнет работать в 100% случаев. Наверняка помогает только завершение всех процессов IE - но это не решение. Версии софта на котором последний раз тестил - Win7 и IE8, но судя по всему проблема есть на всех версиях винды и ИЕ. Очень прошу помочь с этим вопросом Спасибо. Первое решение которое пришло в голову - выполнять скрипт через добавнение нода скрипта в документ, но тут загвоздка в том как дождаться окончания выполнения скрипта (это обязательно надо делать) и узнать результат - не было ли синтаксической ошибки или E_ACCESSDENIED. Это сообщение отредактировал(а) nerdy_weirdie - 20.1.2011, 19:12 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |