Share via


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

Nota

Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de automação da interface do usuário gerenciadas definidas no System.Windows.Automation namespace. Para obter as informações mais recentes sobre a automação da interface do usuário, consulte API de automação do Windows: automação da interface do usuário.

Microsoft UI Automation é a nova estrutura de acessibilidade para o Microsoft Windows, disponível em todos os sistemas operacionais que suportam o Windows Presentation Foundation (WPF).

A Automação da Interface do Usuário fornece acesso programático à maioria dos elementos da interface do usuário na área de trabalho, permitindo que produtos de tecnologia assistiva, como leitores de tela, forneçam informações sobre a interface do usuário aos 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.

Nota

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

Os aplicativos cliente de automação da interface do usuário podem ser escritos com a garantia de que funcionarão em várias estruturas. O núcleo de 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 Content propriedade de um botão WPF, a Caption propriedade de um botão Win32 e a ALT propriedade de uma imagem HTML são mapeadas para uma única propriedade, Name, no modo de exibição Automação da Interface do Usuário.

A Automação da Interface do Usuário fornece funcionalidade completa em sistemas operacionais Windows suportados que executam o .NET Framework (consulte Requisitos de sistema do .NET Framework ou versões do .NET Core começando com o .NET Core 3.0.

Os provedores de automação da interface do usuário oferecem algum suporte para aplicativos cliente do Microsoft Ative Accessibility por meio de um serviço de ponte interno.

Fornecedores e Clientes

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

Componente Description
API do provedor (UIAutomationProvider.dll e UIAutomationTypes.dll) Um conjunto de definições de interface que são implementadas por provedores de automação da interface do usuário, objetos que fornecem informações sobre elementos da interface do usuário e respondem à entrada programática.
API do cliente (UIAutomationClient.dll e UIAutomationTypes.dll) Um conjunto de tipos de código gerenciado que permite que os aplicativos cliente de Automação da Interface do Usuário obtenham informações sobre a interface do usuário e enviem entrada para controles.
UiAutomationCore.dll O código subjacente (às vezes chamado de núcleo de automação da interface do usuário) que lida com a comunicação entre provedores e clientes.
UIAutomationClientsideProviders.dll Um conjunto de provedores de automação da interface do usuário para controles legados padrão. (Os controles WPF têm suporte nativo para automação da interface do usuário.) Esse suporte está automaticamente disponível para aplicativos cliente.

Da perspetiva do desenvolvedor de software, 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 que usam o núcleo de Automação da Interface do Usuário para se comunicar com elementos da interface do usuário (usando a API do cliente). Dependendo do seu foco, você deve consultar diferentes partes da documentação. Você pode aprender mais sobre os conceitos e obter conhecimento prático de como fazer nas seções a seguir.

Section Objeto Audiência
Fundamentos de automação da interface do usuário (esta seção) Ampla visão geral dos conceitos. Tudo.
Provedores de automação da interface do usuário para código gerenciado Visões gerais e tópicos de instruções para ajudá-lo a usar a API do provedor. Controle desenvolvedores.
Clientes de automação da interface do usuário para código gerenciado Visão geral e tópicos de instruções para ajudá-lo a usar a API do cliente. Desenvolvedores de aplicativos cliente.
Padrões de controle de automação da interface do usuário Informações sobre como os padrões de controle devem ser implementados pelos provedores e quais funcionalidades estão disponíveis para os clientes. Tudo.
Padrão de texto de automação da interface do usuário Informações sobre como o padrão de controle de texto deve ser implementado pelos provedores e qual funcionalidade está disponível para os clientes. Tudo.
Tipos de controle de automação da interface do usuário Informações sobre as propriedades e padrões de controle suportados por diferentes tipos de controle. Tudo.

A tabela a seguir lista os namespaces de Automação da Interface do Usuário, as DLLs que os contêm e o público que os usa.

Espaço de Nomes DLLs referenciadas Audiência
System.Windows.Automation UIAutomationClientUIAutomationTypes Desenvolvedores de clientes de UI Automation; usado para localizar AutomationElement objetos, registrar-se para eventos de Automação da Interface do Usuário e trabalhar com padrões de controle da Automação da Interface do Usuário.
System.Windows.Automation.Provider UIAutomationProviderUIAutomationTypes Desenvolvedores de provedores de automação da interface do usuário para estruturas diferentes do WPF.
System.Windows.Automation.Text UIAutomationClientUIAutomationTypes Desenvolvedores de provedores de UI Automation para frameworks diferentes do WPF; usado para implementar o padrão de controle TextPattern.
System.Windows.Automation.Peers PresentationFramework Desenvolvedores de provedores de automação de interface do usuário para WPF.

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

A Automação da Interface do Usuário expõe cada parte da interface do usuário aos aplicativos cliente como um AutomationElementarquivo . 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. Os aplicativos também podem criar exibições personalizadas.

AutomationElement objetos expõem propriedades comuns dos elementos da interface do usuário que representam. Uma dessas propriedades é o tipo de controle, que define sua aparência básica e funcionalidade como uma única entidade reconhecível: por exemplo, um botão ou uma caixa de seleção.

Além disso, os elementos expõem padrões de controle que fornecem propriedades específicas para seus tipos de controle. Os padrões de controle também expõem métodos que permitem que os clientes obtenham mais informações sobre o elemento e forneçam entrada.

Nota

Não existe uma correspondência um-para-um entre os tipos de controlo e os padrões de controlo. Um padrão de controle pode ser suportado por vários tipos de controle, e um controle pode suportar vários padrões de controle, cada um dos quais expõe diferentes aspetos de seu comportamento. Por exemplo, uma caixa de combinação tem pelo menos dois padrões de controle: um que representa sua capacidade de expandir e recolher e outro que representa o mecanismo de seleção. Para obter detalhes, consulte Tipos de controle de automação da interface do usuário.

A Automação da Interface do Usuário também fornece informações para aplicativos cliente por meio de eventos. Ao contrário do WinEvents, os eventos de automação da interface do usuário não são baseados 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 da Automação da Interface do Usuário e informações de padrão de controle sejam passadas para seus manipuladores de eventos. Além disso, um evento de Automação da Interface do Usuário contém uma referência ao elemento que o gerou. Os provedores podem melhorar o desempenho levantando eventos seletivamente, dependendo se algum cliente está ouvindo.

Consulte também