Автоматизация пользовательского интерфейса с другим приложением - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно взаимодействовать с приложением Windows, нажав кнопку в моем приложении.Точнее: как мне написать в текстовом поле или прокрутить выпадающее меню?

1 Ответ

0 голосов
/ 17 февраля 2019

Есть несколько способов сделать это в зависимости от того, какое приложение вы автоматизируете.Если вы автоматизируете приложение WPF, я бы предложил использовать Microsoft UI Automation (UIA).Вокруг UIA есть несколько хороших обёрток, таких как TestStack.White и FlaUI . FlaUI является более современным из двух и поддерживает UIAv3 с использованием оболочки COM. TestStack.White построен поверх UIAv2 с использованием управляемой оболочки в .NET Framework, которая больше не поддерживается.

Если вы автоматизируете что-то еще, кромеWPF-приложение, которое вы можете сделать PInvokes SendMessage .Я бы посоветовал держаться подальше от этого метода и использовать платформу Microsoft UIA, поскольку отправка сообщений Windows может быть довольно многословной.Если вы действительно хотите пойти по пути Win32, я предлагаю использовать что-то вроде AutoIT для автоматизации вашего приложения.

Наконец, вы захотите загрузить Windows SDK изапустите Inspect.exe из этого. Inspect.exe - это приложение, которое позволит вам увидеть свойства, которые вы пытаетесь запросить, и доступные шаблоны.Такие приложения, как AutoIT , по сути, создали свой собственный Inspect.exe или справочный и прикладной вызов UISpy, который также находится в Windows SDK , но в основном заменен Inspect..exe .

...