Visão geral dos provedores de 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.
Os provedores de Automação da Interface do Usuário permitem que os controles se comuniquem com os aplicativos cliente da Automação da Interface do Usuário. Em geral, cada controle ou outro elemento distinto em uma interface do usuário (UI) é representado por um provedor. O provedor expõe informações sobre o elemento e, opcionalmente, implementa padrões de controle que permitem que o aplicativo cliente interaja com o controle.
Os aplicativos cliente geralmente não precisam trabalhar diretamente com os provedores. A maioria dos controles padrão em aplicativos que usam as estruturas Win32, Windows Forms ou Windows Presentation Foundation (WPF) são automaticamente expostos ao sistema de automação da interface do usuário. Os aplicativos que implementam controles personalizados também podem implementar provedores de automação da interface do usuário para esses controles, e os aplicativos cliente não precisam executar nenhuma etapa especial para obter acesso a eles.
Este tópico fornece uma visão geral de como os desenvolvedores de controle implementam provedores de automação da interface do usuário, particularmente para controles em janelas do Windows Forms e Win32.
Tipos de Fornecedores
Os provedores de automação da interface do usuário se enquadram em duas categorias: provedores do lado do cliente e provedores do lado do servidor.
Fornecedores do lado do cliente
Os provedores do lado do cliente são implementados por clientes de automação da interface do usuário para se comunicar com um aplicativo que não oferece suporte ou não oferece suporte total à automação da interface do usuário. Os provedores do lado do cliente geralmente se comunicam com o servidor através do limite do processo enviando e recebendo mensagens do Windows.
Como os provedores de automação da interface do usuário para controles no Win32, Windows Forms ou aplicativos WPF são fornecidos como parte do sistema operacional, os aplicativos cliente raramente precisam implementar seus próprios provedores, e esta visão geral não os cobre ainda mais.
Provedores do lado do servidor
Os provedores do lado do servidor são implementados por controles personalizados ou por aplicativos baseados em uma estrutura de interface do usuário diferente do Win32, Windows Forms ou WPF.
Os provedores do lado do servidor se comunicam com aplicativos cliente através do limite do processo expondo interfaces ao sistema principal de Automação da Interface do Usuário, que, por sua vez, atende às solicitações dos clientes.
Conceitos de provedor de automação da interface do usuário
Esta seção fornece breves explicações de alguns dos principais conceitos que você precisa entender para implementar provedores de automação da interface do usuário.
Elementos
Os elementos de Automação da Interface do Usuário são partes da interface do usuário (UI) que são visíveis para os clientes de Automação da Interface do Usuário. Os exemplos incluem janelas de aplicativos, painéis, botões, dicas de ferramentas, caixas de listagem e itens de lista.
Navegação
Os elementos de Automação da Interface do Usuário são expostos aos clientes como uma árvore de Automação da Interface do Usuário. A Automação da Interface do Usuário constrói a árvore navegando de um elemento para outro. A navegação é ativada pelos provedores para cada elemento, cada um dos quais pode apontar para um pai, irmãos e filhos.
Para obter mais informações sobre a exibição do cliente da árvore de automação da interface do usuário, consulte Visão geral da árvore de automação da interface do usuário.
Visualizações
Um cliente pode ver a árvore de automação da interface do usuário em três exibições principais, conforme mostrado na tabela a seguir.
Ver | Description |
---|---|
Vista bruta | Contém todos os elementos. |
Vista de controlo | Contém elementos que são controles. |
Visualização de conteúdo | Contém elementos que têm conteúdo. |
Para obter mais informações sobre as exibições do cliente da árvore de automação da interface do usuário, consulte Visão geral da árvore de automação da interface do usuário.
É responsabilidade da implementação do provedor definir um elemento como um elemento de conteúdo ou um elemento de controle. Os elementos de controle podem ou não também ser elementos de conteúdo, mas todos os elementos de conteúdo são elementos de controle.
Frameworks
Uma estrutura é um componente que gerencia controles filho, testes de acerto e renderização em uma área da tela. Por exemplo, uma janela do Win32, muitas vezes referida como um HWND, pode servir como uma estrutura que contém vários elementos de automação da interface do usuário, como uma barra de menus, uma barra de status e botões.
Os controles de contêiner do Win32, como caixas de listagem e exibições em árvore, são considerados estruturas, porque contêm seu próprio código para renderizar itens filho e executar testes de acertos neles. Por outro lado, uma caixa de listagem WPF não é uma estrutura, porque a renderização e o teste de acertos estão sendo manipulados pela janela WPF que contém.
A interface do usuário em um aplicativo pode ser composta de diferentes estruturas. Por exemplo, uma janela de aplicativo HWND pode conter HTML dinâmico (DHTML) que, por sua vez, contém um componente como uma caixa de combinação em um HWND.
Fragmentos
Um fragmento é uma subárvore completa de elementos de uma estrutura particular. O elemento no nó raiz da subárvore é chamado de raiz de fragmento. Uma raiz de fragmento não tem um pai, mas é hospedada dentro de alguma outra estrutura, geralmente uma janela Win32 (HWND).
Anfitriões
O nó raiz de cada fragmento deve ser hospedado em um elemento, geralmente uma janela Win32 (HWND). A exceção é a área de trabalho, que não está hospedada em nenhum outro elemento. O host de um controle personalizado é o HWND do controle em si, não a janela do aplicativo ou qualquer outra janela que possa conter grupos de controles de nível superior.
O host de um fragmento desempenha um papel importante no fornecimento de serviços de automação da interface do usuário. Ele permite a navegação para a raiz do fragmento e fornece algumas propriedades padrão para que o provedor personalizado não precise implementá-las.