Как получить Control / Windows Handle / AutomationElement, который получает щелчки мыши в определенной точке? - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь получить элемент управления с определенной координатой экрана, которую я дал.Теперь я хочу знать, какой элемент управления получит щелчок мышью.(Элемент управления находится в другом приложении в сценарии автоматизации пользовательского интерфейса.)

Кроме того, позвольте мне сказать, что Control, Windows Handle и AutomationElement все одинаковы для меня, поскольку они более или менее легко конвертируются в одиндругой (кроме, может быть, элемента управления, который, я думаю, не работает в другом процессе).

Существуют очевидные функции, такие как WindowFromPoint и AutomationElement.FromPoint, но обе не работают, возвращая некоторый элемент, который кажется (невидимым) обычай нарисован сверху.Тем не менее, я знаю, что щелчки мыши переходят к желаемому контролю.Итак ... есть ли способ узнать, где на самом деле щелкают мыши?Может быть, в качестве альтернативы, чтобы выяснить, проходит ли элемент щелчки мышью?

Большое спасибо Andreas

1 Ответ

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

Поскольку ответов нет (или я слишком нетерпелив?), Есть .. не решение, а скорее решение, которое я нашел.

На самом деле, я бы хотел глубокий поиск, которыйнастраивается (чего, к сожалению, не существует, хотя я полагаю, вы могли бы сделать это рекурсивно самостоятельно)Как ни странно и достаточно интересно, это легко выполнимо из-за пределов вашего приложения, просто вызовите функцию ShowWindow (http://www.pinvoke.net/default.aspx/user32/ShowWindow.html) и скройте окно, которое вы не хотите принимать во внимание.Позже вы можете вернуть его в исходное состояние, если не хотите менять целевое приложение.

Любой, у кого есть лучшее решение: во что бы то ни стало, скажите, пожалуйста!

...