Как получить сфокусированные элементы конкретного процесса в c # - PullRequest
0 голосов
/ 07 февраля 2012

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

например.я запускаю процесс www.google.com, который открывается в Google Chrome, теперь скажем, что я хочу найти «привет», способ сделать это, насколько я знаю, это получить элемент фокуса клавиатуры, который будет текстовым полем Google.com. Как это сделать с помощью моего приложения, то есть программно (получение элемента Chrome, ориентированного на клавиатуру) Process[] pr = Process.GetProcessesByName("chrome"); var target = pr[0];

1 Ответ

1 голос
/ 07 февраля 2012

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

1) Если процесс, на который вы ссылаетесь, всегда является веб-сайтом, выследует пропустить методы очистки экрана, как упомянуто @vulkanino, и просто получить содержимое веб-сайта напрямую.Если вы хотите, чтобы веб-сайт анализировался реальным браузером (а не самим необработанным HTML-кодом), вы можете использовать очистку экрана, но помните, что не все компьютеры используют один и тот же браузер.

2) Если вы хотитедля скрининга информации из запущенного процесса у вас (к сожалению) нет простого API, подобного ожидаемому, где объект Process pr содержит список элементов, которые вы можете пройти.Это потому, что процесс мог быть написан на .NET / WinForms, .NET / WPF, C ++ / MFC или любой другой дюжине других структур пользовательского интерфейса, которые работают совсем по-другому.

То, что я хотел бы предложить, - это использование среды доступности средства чтения с экрана, такой как Microsoft UI Automation, которая способна извлекать текст из пользовательского интерфейса многих распространенных приложений.Эта функциональность существует, чтобы помочь считывать пользовательский интерфейс приложения для слабовидящих, но может также использоваться для скриншота.

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