Visão geral de automação da interface do usuário

A Automação da Interface do Usuário da Microsoft é uma estrutura de acessibilidade para Windows. Ele fornece acesso programático à maioria dos elementos da interface do usuário na área de trabalho. Ele permite que produtos de tecnologia adaptativa, como leitores de tela, forneçam informações sobre a interface do usuário para os usuários finais e manipulem a interface do usuário por meios diferentes da entrada padrão. A automação da interface do usuário também permite que scripts de teste automatizados interajam com a interface do usuário.

A Automação da Interface do Usuário foi disponibilizada pela primeira vez no Windows XP como parte do microsoft .NET Framework. Embora uma API C++ não gerenciada também tenha sido publicada na época, a utilidade das funções de cliente foi limitada devido a problemas de interoperabilidade. Para o Windows 7, a API foi reescrita no COM (Component Object Model).

Observação

Embora as funções de biblioteca introduzidas na versão anterior da Automação da Interface do Usuário ainda estejam documentadas, elas não devem ser usadas em novos aplicativos.

Os aplicativos cliente da Automação da Interface do Usuário podem ser escritos com a garantia de que funcionarão em várias estruturas de controle do Microsoft Windows. O núcleo da Automação da Interface do Usuário mascara quaisquer diferenças nas estruturas subjacentes a várias partes da interface do usuário. Por exemplo, a propriedade Content de um botão Windows Presentation Foundation (WPF), a propriedade Caption de um botão Microsoft Win32 e a propriedade ALT de uma imagem HTML são mapeadas para uma única propriedade, Name, na exibição automação da interface do usuário.

A Automação da Interface do Usuário fornece funcionalidade completa no Windows XP, no Windows Server 2003 e em sistemas operacionais posteriores.

Os provedores de Automação da Interface do Usuário são componentes que implementam o suporte à Automação da Interface do Usuário em controles e oferecem algum suporte para aplicativos cliente do Microsoft Active Accessibility, por meio de um serviço de ponte interno.

Observação

A Automação da Interface do Usuário não habilita a comunicação entre processos iniciados por usuários diferentes por meio do comando Executar como .

Este tópico inclui as seções a seguir.

Componentes de Automação da Interface do Usuário

A automação da interface do usuário tem quatro componentes principais, conforme mostrado na tabela a seguir.

Componente Descrição
API do provedor Um conjunto de interfaces COM implementadas por provedores de Automação da Interface do Usuário. Os provedores de Automação da Interface do Usuário são objetos que fornecem informações sobre elementos da interface do usuário e respondem à entrada programática.
API do cliente Um conjunto de interfaces COM que permitem que os aplicativos cliente obtenham informações sobre a interface do usuário e enviem entradas para controles. Nota: As funções descritas em Funções de Padrão de Controle Preteridas e Funções de Nó Preteridas foram preteridas. Em vez disso, os aplicativos cliente devem usar as interfaces COM de Automação da Interface do Usuário descritas em Interfaces de Elemento de Automação da Interface do Usuário para Clientes.
UIAutomationCore.dll A biblioteca em tempo de execução, às vezes chamada de núcleo de Automação da Interface do Usuário, que lida com a comunicação entre provedores e clientes.
Oleacc.dll A biblioteca em tempo de execução para a Acessibilidade Ativa da Microsoft e os objetos proxy. A biblioteca também fornece objetos proxy usados pelo Microsoft Active Accessibility to UI Automation Proxy para dar suporte a controles Win32.

Há duas maneiras de usar a Automação da Interface do Usuário: criar suporte para controles personalizados usando a API do provedor e criar aplicativos cliente que usam o núcleo de Automação da Interface do Usuário para se comunicar e recuperar informações sobre elementos da interface do usuário. Dependendo do foco, você deve consultar diferentes partes da documentação. Se você precisar criar suporte para controles personalizados, consulte Guia do Programador do Provedor de Automação da Interface do Usuário. Se você precisar se comunicar ou recuperar informações sobre elementos da interface do usuário, consulte Guia do Programador do Cliente de Automação da Interface do Usuário.

Arquivos de cabeçalho de automação da interface do usuário

A API de Automação da Interface do Usuário é definida em vários arquivos de cabeçalho C/C++ diferentes incluídos no SDK (Software Development Kit) do Windows. Os arquivos de cabeçalho da Automação da Interface do Usuário são descritos na tabela a seguir:

Arquivo de cabeçalho Descrição
UIAutomationClient.h Define as interfaces e os elementos de programação relacionados usados pelos clientes de Automação da Interface do Usuário.
UIAutomationCore.h Define as interfaces e os elementos de programação relacionados usados pelos provedores de Automação da Interface do Usuário.
UIAutomationCoreApi.h Define constantes gerais, GUIDs, tipos de dados e estruturas usadas por clientes e provedores de Automação da Interface do Usuário. Ele também contém definições para as funções preteridas do nó e do padrão de controle.
UIAutomation.h Inclui todos os outros arquivos de cabeçalho da Automação da Interface do Usuário. Como a maioria dos aplicativos de Automação da Interface do Usuário exige elementos de todos os arquivos de cabeçalho da Automação da Interface do Usuário, é melhor incluir UIAutomation.h em seus projetos de aplicativo de Automação da Interface do Usuário em vez de incluir cada arquivo individualmente.

Se você estiver desenvolvendo um aplicativo que usa a API de Automação da Interface do Usuário, deverá incluir UIAutomation.h em seu projeto. Se o aplicativo der suporte à Acessibilidade Ativa da Microsoft, inclua o arquivo de cabeçalho Oleacc.h. Os aplicativos de Automação da Interface do Usuário que usam GUIDs também exigem o arquivo de cabeçalho Initguid.h. Se necessário, Initguid.h deve ser incluído antes de UIAutomation.h.

Modelo de automação de interface do usuário

A Automação da Interface do Usuário expõe todos os elementos da interface do usuário para aplicativos cliente como um objeto representado pela interface IUIAutomationElement . Os elementos estão contidos em uma estrutura de árvore, com a área de trabalho como o elemento raiz. Os clientes podem filtrar a exibição bruta da árvore como uma exibição de controle ou uma exibição de conteúdo. Esses modos de exibição padrão da estrutura podem ser facilmente vistos usando o aplicativo Inspect incluído no SDK do Windows. Os aplicativos também podem criar exibições personalizadas.

Um elemento de Automação da Interface do Usuário expõe propriedades do controle ou do elemento de interface do usuário que ele representa. Uma dessas propriedades é o tipo de controle, que define a aparência e a funcionalidade básicas do controle ou do elemento de interface do usuário como uma única entidade reconhecível, por exemplo, um botão ou uma caixa de marcar. Para obter mais informações sobre tipos de controle, consulte Visão geral dos tipos de controle de automação da interface do usuário.

Além disso, um elemento de Automação da Interface do Usuário expõe um ou mais padrões de controle. Um padrão de controle fornece um conjunto de propriedades específicas para um tipo de controle específico. Um padrão de controle também expõe métodos que permitem que aplicativos cliente obtenham mais informações sobre o elemento e forneçam entrada para o elemento. Para saber mais sobre padrões de controle, consulte Visão geral dos padrões de controle de Automação da Interface do Usuário.

Observação

Não há correspondência um-para-um entre tipos de controle e padrões de controle. Um padrão de controle ser apoiado por vários tipos de controle, e um controle pode ser compatível com vários padrões de controle, em que cada um deles expõe diferentes aspectos de seu comportamento. Por exemplo, uma caixa de combinação tem pelo menos dois padrões de controle: um que representa a capacidade de expandir e recolher e outro que representa o mecanismo de seleção. No entanto, um controle pode exibir apenas um único tipo de controle.

A Automação da Interface do Usuário fornece informações para aplicativos cliente por meio de eventos. Ao contrário do WinEvents, os eventos da automação da interface do usuário não se baseiam em um mecanismo de transmissão. Os clientes de Automação da Interface do Usuário se registram para notificações de eventos específicas e podem solicitar que propriedades específicas e informações de padrão de controle sejam passadas para seus manipuladores de eventos. Além disso, um evento da automação da interface do usuário contém uma referência ao elemento que o gerou. Os provedores podem melhorar o desempenho gerando eventos seletivamente, dependendo se algum cliente estiver escutando. Para obter mais informações sobre eventos, confira Visão geral de eventos de Automação da Interface do Usuário.

Conceitual

Visão Geral dos Tipos de Controle de Automação de Interface do Usuário

Visão Geral de Padrões de Controle de Automação de Interface de Usuário

Visão geral sobre eventos de automação de interface do usuário