получить любой элемент пользовательского интерфейса на экране для любого приложения в Windows - PullRequest
1 голос
/ 14 мая 2010

Есть ли способ на любом языке программирования, возможно, с использованием Microsoft SDK, получить на экране положение элементов пользовательского интерфейса в окне любого приложения? Если да, то не могли бы вы дать руководство с примером, возможно? Спасибо, мне больно уже несколько дней!

Пожалуйста, примите во внимание, что это внешнее приложение. Так, например, если я открыл MS Word, мое приложение должно быть в состоянии получить расположение на экране кнопки «Жирный».

Пока, я думаю, мне нужно будет использовать крючки.

1 Ответ

2 голосов
/ 14 мая 2010

Чтобы получить позицию элемента управления во внешнем приложении, вам необходимо выполнить следующие шаги:

  • Вызов EnumWindows, который перечислил все окна верхнего уровня
  • Для интересующего вас окна верхнего уровня звоните EnumChildWindows
  • Вызовите GetWindowRect для дочернего окна (элемента управления), положение которого вы хотите получить

Детали этого зависят от того, чего именно вы пытаетесь достичь.

В качестве альтернативы вы можете использовать Windows Automation API (http://msdn.microsoft.com/en-us/library/dd561932(VS.85).aspx) с GetCurrentPorpertyValue(UIA_BoundingRectanglePropertyId, result).

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

Также обратите внимание на инструмент шпиона UI, который поставляется вместе с Windows SDK (http://msdn.microsoft.com/en-us/library/ms727247.aspx).

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