Получение дескриптора для элементов управления на веб-страницах Internet Explorer - PullRequest
0 голосов
/ 16 марта 2009

У меня есть браузер Internet Explorer, встроенный в приложение форм Windows, и я не могу изменить исходный код этой формы. Тем не менее, я получил дескриптор окна IE и могу выполнять различные SendInput функции. Если я нажимаю на элемент управления, как я могу определить, является ли он TextBox, и как мне отправить символы на этот TextBox?

Мне нужны ответы, которые используют дескриптор окна IE, которое я уже получил для других моих функций. Нужный мне ответ должен включать дескриптор окна IE.

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

http://watin.org/ дает вам много возможностей для доступа к веб-браузерам - не знаю, включает ли он те, которые встроены в другие приложения.

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

0 голосов
/ 18 марта 2009

Вы не можете. Элементы управления в IExplore больше не являются элементами управления окнами - они представляют собой пользовательские объекты, отображаемые IExplore, которые просто выглядят как фактические элементы управления окнами.

Единственный способ взаимодействия с элементами управления на веб-странице - получить доступ к элементу управления activeX окон Internet Explorer, запросить у него IID_IWebBrowser2 и с этой точки перемещаться по пространству имен объектной модели документа.

Если под «нет возможности изменять исходный код этой формы» вы имеете в виду, что ваш код выполняется в совершенно другом процессе, тогда у вас очень большая проблема. Если вы находитесь в том же процессе, есть хороший шанс, что WinForms имеет API, который вы можете использовать для принудительного доступа к любому элементу activex, управляющему его хостингом.

Учитывая ваш неоптимальный выбор языка для такого рода dev - c # - я не могу дать совет относительно того, насколько простым или возможным будет взаимодействие с элементами управления activex.

...