Partilhar via


Eventos de automação da interface do usuário para clientes

Observação

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 namespace System.Windows.Automation. Para obter as informações mais recentes sobre a automação da interface de utilizador, consulte API de automação do Windows: Automação da Interface de Utilizador.

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

UI Automation permite que os clientes se inscrevam em eventos de interesse. Esse recurso melhora o desempenho, eliminando a necessidade de pesquisar 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 é melhorada pela capacidade de ouvir eventos apenas dentro de um escopo definido. Por exemplo, um cliente pode ouvir eventos de mudança de foco em todos os elementos de Automação da Interface do Usuário na árvore ou em apenas um elemento e seus descendentes.

Observação

Não assuma que todos os eventos possíveis são 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 visão mais ampla dos eventos de Automação da Interface do Usuário, consulte Visão geral dos eventos de Automação da Interface do Usuário .

Subscrever Eventos

As aplicações cliente subscrevem eventos de um tipo específico ao registar um manipulador de eventos, utilizando um dos seguintes métodos.

Método Tipo de Evento Tipo de Argumentos de Evento Tipo de delegado
AddAutomationFocusChangedEventHandler Mudança de foco AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Mudança de propriedade AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Mudança 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 manipular 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 de janela fechada, converta o tipo de argumento que é passado para o manipulador de eventos como WindowClosedEventArgs. Como o elemento Microsoft UI Automation 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.

Atenção

Se o seu aplicativo pode receber eventos de sua própria interface do usuário, não use o thread da interface do usuário do aplicativo para se inscrever em eventos ou para cancelar a inscrição. Fazer isso pode levar a um comportamento imprevisível. Para obter mais informações, consulte Problemas de encadeamento na automação da interface do utilizador.

No desligamento ou quando os eventos de Automação da Interface do Usuário não são mais de interesse para o aplicativo, os clientes de Automação da Interface do Usuário devem chamar um dos seguintes métodos.

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

Para obter um código de exemplo, consulte Inscrever-se em eventos de automação da interface do usuário.

Ver também