Как автоматизировать простое приложение Windows Form с помощью MSAA?

Я хочу автоматизировать простое приложение Windows, используя MSAA. Я не понимаю, что, как найти контроль (скажем, TextBox а также Button) и получить их значение (скажем, получить значение TextBox и нажмите в случае кнопки).

2 ответа

Почему вы хотите автоматизировать использование MSAA? Текущий путь Microsoft - UI Automation.

Из Википедии (выделено мое):

UIA похожа на Microsoft Active Accessibility (MSAA) в том, что она предоставляет средства для предоставления и сбора информации об элементах пользовательского интерфейса и элементах управления для поддержки доступности пользовательского интерфейса и автоматизации тестирования программного обеспечения. Тем не менее, UIA является более новой технологией, которая обеспечивает гораздо более богатую объектную модель, чем MSAA...

С помощью UI Automation вы можете автоматизировать создание собственного или.NET-приложения или использовать сторонний инструмент, такой как RIATest, который опирается на UI Automation.

(Отказ от ответственности: я связан с RIATest).

Далее предполагается, что вы будете разрабатывать свою программу автоматизации на C/C++, так как я не уверен, что было бы легко использовать MSAA из.NET (хотя это могло бы быть возможно!)

Если вы не хотите использовать C++, вы можете исследовать с помощью MS UI Automation из.NET.

Чтобы начать разработку клиентского приложения для автоматизации с использованием MSAA и C++, я предлагаю:

  1. Установите Windows SDK для Windows 7 и.NET Framework 4

  2. Это установит инструмент Inspect.exe - найдите его в:

    Programs > Microsoft Windows SDK v7.1 > Tools > Inspect Objects

  3. Запустите Inspect.exe и переключите верхнее левое раскрывающееся меню с "UI Automation" на "MSAA"

  4. Запустите тестируемое приложение и наведите курсор мыши на его элементы пользовательского интерфейса - свойства MSAA элементов должны отображаться в Inspect.exe.

  5. Напишите свой код автоматизации:)

Важным выбором будет решить, использовать ли управляемые событиями методы для определения местоположения ваших элементов, или просто начать с верхнего уровня (рабочего стола), найти свое приложение среди дочерних элементов рабочего стола и углубиться в дерево элементов вашего приложения. оттуда.

На codeproject.com есть хороший учебник по MSAA, управляемый событиями, по адресу: http://www.codeproject.com/Articles/18290/Introduction-to-Microsoft-Active-Accessibility

Учебники по древовидной навигации в MSAA кажутся немного более скудными. Я бы начал с документов MS - я рекомендую первый:

Клиентские интерфейсы Active Accessibility и функции

Службы пользовательского интерфейса Active Accessibility

Стартовая страница Active Accessibility

Другие вопросы по тегам