Использование UI Automation для нажатия кнопки в приложении

Я пытаюсь использовать UI Automation для нажатия простой кнопки в стороннем приложении.
Я инициализировал объект IUIAutomation и получил IUIAutomationElement с помощью функции ElementFromHandle () с дескриптором окна стороннего приложения.

Но я действительно не могу понять, как использовать этот элемент IUIAutomationElement, чтобы найти кнопку и нажать левую кнопку.

Это мой код до сих пор:

void Control::clickButton()
{
for (std::list<Window>::iterator i = mainDetector.getWindowList().begin(); i != mainDetector.getWindowList().end(); ++i)
{
if (i->getTitle().find("PokerStars Lobby") != std::string::npos)
{
parentWindowHandle = (HWND)i->getHandle();
}
}

InitializeUIAutomation(iUiAutomation);
(*iUiAutomation)->ElementFromHandle(parentWindowHandle, iUiAutomationElement);

}

Надеюсь, что кто-то может помочь мне, как продолжить отсюда, чтобы фактически нажать на кнопку

0

Решение

Вы можете найти его проще в использовании TestStack.White (также доступно в NuGet), чтобы делать подобные вещи. Он включает в себя множество UIAutomation, чтобы упростить написание тестов для приложений Windows.

Чтобы найти целевую кнопку, вы можете использовать «UIVerify» или «осмотреть» из Windows 10 SDK, что позволяет просматривать дерево автоматизации пользовательского интерфейса для всех окон на рабочем столе. Найдя интересующую кнопку, вы можете отметить ее AutomationId или другие свойства, которые будут использоваться в качестве параметров поиска для одного из TestStack.WhiteПоисковые команды или IUIAutomationTreeWalker пример.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]