Отслеживание активности в элементе управления WebBrowser с хоста Windows Form - PullRequest
1 голос
/ 22 октября 2009

Отказ от ответственности: я спрашиваю от имени клиента, и не был свидетелем этой проблемы из первых рук. У него есть стороннее приложение, которое создает учебные материалы, которые его учебное приложение представляет в приложении WinForms через элемент управления WebBrowser.

Интерфейсы, к которым он смог получить доступ в элементе управления WebBrowser, на первый взгляд, не предоставляют всей информации, требуемой формой хоста, для полной интеграции с веб-приложением, которое является немного более продвинутым, чем базовый HTML. Он хотел бы, например, обнаружить нажатие кнопки и информацию о состоянии веб-приложения при его нажатии.

Если возможно больше, что мы знаем с помощью WebBrowser, пожалуйста, предложите некоторые области для изучения. Иначе, есть ли альтернатива элементу управления WebBrowser? Что-нибудь из Mozilla, которое можно превратить в форму управления окнами, но не настолько запатентованно?

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Если вы используете элемент управления IE, вы можете делать практически все, что захотите, используя библиотеку объектов HTML: msmhtl.dll. Вы можете подключиться к элементу управления IE и получить доступ к DOM, перехватывать все события и даже программно перехватывать HTML и изменять его на лету. Но это огромная тема.

Вот ссылка на демонстрационное приложение VB:

http://www.codeproject.com/KB/vb/kirangoka.aspx?msg=2587205

Google на mshtml и shdocvw, и вы должны найти ряд интересных примеров.

В качестве альтернативы взгляните на WatiN.

0 голосов
/ 24 октября 2009

Я понятия не имею о "всей информации, требуемой хостом". Я думаю, что это специфично для веб-сайта. Веб-сайт должен предоставлять информацию предсказуемым образом, например, предоставляя идентификаторы элементов для легкого доступа.

Возможно, вы захотите изменить дизайн сайта и представить некоторые API через веб-сервис. Использование браузера для разбора HTML не очень надежно и масштабируемо.

...