Поделиться через


Создание объекта CUIAutomation

В этом разделе описывается, как приступить к написанию клиентского приложения службы автоматизации пользовательского интерфейса Майкрософт, создав экземпляр объекта, реализующего IUIAutomation.

В этом разделе содержатся следующие разделы.

Объект CUIAutomation

Первым шагом в использовании автоматизации пользовательского интерфейса является создание объекта класса CUIAutomation. Этот объект предоставляет интерфейс IUIAutomation, который является шлюзом для всех других объектов и интерфейсов, используемых клиентскими приложениями. Помимо прочего, IUIAutomation используется для следующих задач:

  • Подписка на события.
  • Создание условий. Условия — это объекты, используемые для сужения области поиска элементов автоматизации пользовательского интерфейса.
  • Получение элементов автоматизации пользовательского интерфейса непосредственно из рабочего стола (корневого элемента) или из координат экрана или дескрипторов окон.
  • Создание объектов пошагового дерева, которые можно использовать для навигации по иерархии элементов автоматизации пользовательского интерфейса.
  • Преобразование типов данных.

Создание объекта

Чтобы приступить к работе с автоматизацией пользовательского интерфейса в приложении, выполните следующие действия.

  • Включите UIAutomation.h в заголовки проекта. UIAutomation.h содержит другие заголовки, определяющие API.
  • Объявите указатель на IUIAutomation.
  • Инициализировать объектную модель компонента (COM).
  • Создайте экземпляр CUIAutomation и получите в вашем указателе интерфейс IUIAutomation.

В следующем примере функция инициализирует COM, а затем создает объект CUIAutomation, извлекая интерфейс IUIAutomation в указатель ppAutomation.

#include <uiautomation.h>

// CoInitialize must be called before calling this function, and the  
// caller must release the returned pointer when finished with it.
// 
HRESULT InitializeUIAutomation(IUIAutomation **ppAutomation)
{
    return CoCreateInstance(CLSID_CUIAutomation, NULL,
        CLSCTX_INPROC_SERVER, IID_IUIAutomation, 
        reinterpret_cast<void**>(ppAutomation));
}

концептуальные

Обзор событий автоматизации пользовательского интерфейса

Получение элементов автоматизации пользовательского интерфейса