Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.