Здравствуйте,господа профессионалы.
Вопрос следующий. Каким образом можно из кода обратиться к текстовым полям других приложений, например Opera?
Возможно ли это вообще? просто вопрос специфический и даже не получилось нормально загуглить, не знаю даже как правильно составить поисковый запрос.
В моем конкретном случае, необходимо запомнить элемент управления(текстовое поле) а в последующем сымитировать действие пользователя по введению туда какого либо текста. Буду очень благодарен если хотя бы подскажите где это можно найти? если это вообще есть в классах .NET...
21.10.10 22:10: Перенесено модератором из '.NET' — TK
Re: Обращение к элементам управления других приложений
Здравствуйте, Novator333, Вы писали:
N>Здравствуйте,господа профессионалы. N>Вопрос следующий. Каким образом можно из кода обратиться к текстовым полям других приложений, например Opera? N>Возможно ли это вообще? просто вопрос специфический и даже не получилось нормально загуглить, не знаю даже как правильно составить поисковый запрос. N>В моем конкретном случае, необходимо запомнить элемент управления(текстовое поле) а в последующем сымитировать действие пользователя по введению туда какого либо текста. Буду очень благодарен если хотя бы подскажите где это можно найти? если это вообще есть в классах .NET...
Да, все можно (при двух если), но вот насчет дотнета — не знаю.
Если #1. Текстовые поля должны быть окнами, а не безоконными контролами (пример — контролы WPF). Убедиться в том, что они окна, можно с помощью Spy++, если он их находит — значит, окна.
Если #2. Эти текстовые поля должны быть или окнами класса "edit" или чем-то, что ведет себя как окна этого класса.
Если оба условия выполняются, то посылкой сообщений WM_SETTEXT , WM_GETTEXT можно добиться требуемого. Найти окно можно через FindWindow(Ex).
Есть ли такое в классах .NET — не знаю. Через PInvoke делается без особого труда.
With best regards
Pavel Dvorkin
Re[2]: Обращение к элементам управления других приложений
От:
Аноним
Дата:
22.10.10 04:17
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Если #1. Текстовые поля должны быть окнами, а не безоконными контролами (пример — контролы WPF). Убедиться в том, что они окна, можно с помощью Spy++, если он их находит — значит, окна. PD>Если #2. Эти текстовые поля должны быть или окнами класса "edit" или чем-то, что ведет себя как окна этого класса.
Это не поможет с вводом в браузерные окна. Если бы такая возможность была.. жизнь была бы проще )
Novator333, для того чтобы читать из и вводить в элементы web-страницы надо использовать какой-либо механизм, который это обеспечивает. Например, поля ввода пароля браузеры не позволяют изменять извне, т.е.средствами браузера или его плагинов/расширений. Можете даже не пытаться, это сделано специально, чтобы защититься от умников, которые воруют логины/пароли. А вот хакинг вам поможет, ищите на других сайтах.
Re: Обращение к элементам управления других приложений
Здравствуйте, Novator333, Вы писали:
N>Здравствуйте,господа профессионалы. N>Вопрос следующий. Каким образом можно из кода обратиться к текстовым полям других приложений, например Opera?
Windows Automation API. Все правильные приложения должны поддерживать этот API, потому что инвалиды тоже хотят пользоваться компьютерами. Поэтому, этот инструмент универсальный.
Конкретно как работать с текстом из других приложений, ищите в этом разделе.