Automação de Eventos de Interface de Usuário para Clientes.

Observação

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

Este tópico descreve como os eventos do Microsoft Automação da Interface do Usuário são usados por clientes Automação da Interface do Usuário.

Automação da Interface do Usuário permite que os clientes assinem eventos de interesse. Essa funcionalidade melhora o desempenho eliminando a necessidade de sondar continuamente todos os elementos da interface do usuário no sistema para ver se alguma informação, estrutura ou estado foi alterado.

A eficiência também é aprimorada pela capacidade de escutar eventos somente dentro de um escopo definido. Por exemplo, um cliente pode escutar eventos de alteração de foco em todos os elementos Automação da Interface do Usuário na árvore ou em apenas um elemento e seus descendentes.

Observação

Não suponha que todos os eventos possíveis sejam gerados por um provedor de Automação da Interface do Usuário da Microsoft. Por exemplo, nem todas as alterações de propriedade fazem com que os eventos sejam gerados pelos provedores de proxy padrão para controles Windows Forms e Win32.

Para obter uma exibição mais ampla de eventos de Automação da Interface do Usuário, consulte Automação da Interface do Usuário Visão geral de eventos.

Assinando eventos

Os aplicativos cliente assinam eventos de um tipo específico registrando um manipulador de eventos usando um dos métodos a seguir.

Método Tipo de evento Tipo de argumentos de eventos Tipo delegado
AddAutomationFocusChangedEventHandler Alteração de foco AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Alteração da propriedade AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Alteração de estrutura StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Todos os outros eventos, identificados por um AutomationEvent AutomationEventArgs ou WindowClosedEventArgs AutomationEventHandler

Antes de chamar o método, você deve criar um método delegado para manipular o evento. Se preferir, você pode lidar com diferentes tipos de eventos em um único método e passar esse método em várias chamadas para um dos métodos na tabela. Por exemplo, um único AutomationEventHandler pode ser configurado para lidar com vários eventos de forma diferente de acordo com o EventId.

Observação

Para processar eventos fechados pela janela, converta o tipo de argumento que é passado para o manipulador de eventos como WindowClosedEventArgs. Como o elemento microsoft Automação da Interface do Usuário para a janela não é mais válido, você não pode usar o sender parâmetro para recuperar informações; use GetRuntimeId em vez disso.

Cuidado

Se o aplicativo puder receber eventos de sua própria interface do usuário, não use o thread da interface do usuário do aplicativo para assinar eventos ou cancelar a assinatura. Fazer isso pode levar a um comportamento imprevisível. Para obter mais informações, consulte Automação da Interface do Usuário Problemas de Threading.

Ao desligar ou quando Automação da Interface do Usuário eventos não são mais de interesse para o aplicativo, Automação da Interface do Usuário clientes devem chamar um dos métodos a seguir.

Método Descrição
RemoveAutomationEventHandler Cancela o registro de um manipulador de eventos que foi registrado usando AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Cancela o registro de um manipulador de eventos que foi registrado usando AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Cancela o registro de um manipulador de eventos que foi registrado usando AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers Remove todos os manipuladores de eventos não registrados.

Para obter o código de exemplo, consulte Assinar eventos de Automação da Interface do Usuário.

Confira também