Partilhar via


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

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.

A notificação de eventos da Automação da Interface do Usuário da Microsoft é um recurso fundamental para tecnologias assistenciais, como leitores de tela e lupas de tela. Esses clientes de Automação da Interface do Usuário rastreiam eventos gerados pelos provedores de Automação da Interface do Usuário quando algo acontece na interface do usuário e usam as informações para notificar os usuários finais.

A eficiência é melhorada ao permitir que as aplicações de fornecedores gerem eventos seletivamente, dependendo se algum cliente está inscrito nesses eventos, ou não, caso nenhum cliente esteja a escutar quaisquer eventos.

Tipos de Eventos

Os eventos de Automação da Interface do Usuário se enquadram nas seguintes categorias.

Evento Descrição
Mudança de propriedade Gerado quando uma propriedade em um elemento de automação da interface do usuário ou padrão de controle muda. Por exemplo, se um cliente precisar vigiar o controle de caixa de seleção de um aplicativo, poderá se registrar para ouvir um evento de alteração na propriedade ToggleState. Quando o controle de caixa de seleção está marcado ou desmarcado, o provedor gera o evento e o cliente pode agir conforme necessário.
Ação do elemento Ocorre quando uma alteração na interface de utilizador resulta de uma atividade do utilizador final ou programática; por exemplo, quando um botão é clicado ou invocado através do InvokePattern.
Mudança de estrutura Gerado quando a estrutura da árvore de automação da interface do usuário muda. A estrutura muda quando novos itens da interface do usuário ficam visíveis, ocultos ou removidos na área de trabalho.
Mudança global do ambiente de trabalho Gerado quando ocorrem ações de interesse global para o cliente, como quando o foco muda de um elemento para outro ou quando uma janela se fecha.

Alguns eventos não significam necessariamente que o estado da interface do usuário foi alterado. Por exemplo, se o usuário tabular para um campo de entrada de texto e, em seguida, clicar em um botão para atualizar o campo, um TextChangedEvent será gerado mesmo que o usuário não tenha realmente alterado o texto. Ao processar um evento, pode ser necessário que um aplicativo cliente verifique se algo realmente mudou antes de tomar uma ação.

Os eventos a seguir podem ser gerados mesmo quando o estado da interface do usuário não foi alterado.

  • AutomationPropertyChangedEvent (dependendo da propriedade que foi alterada)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificadores de eventos de automação da interface do usuário

Os eventos de Automação da Interface do Usuário da Microsoft são identificados por AutomationEvent objetos. A Id propriedade contém um valor que identifica exclusivamente o tipo de evento.

Os valores possíveis para Id são fornecidos na tabela a seguir, juntamente com o tipo usado para argumentos de evento. Observe que os identificadores usados por clientes e provedores são campos nomeados de forma idêntica de diferentes classes.

Identificador do cliente Identificador do provedor Tipo de Argumentos de Evento
AutomationElement.AsyncContentLoadedEvent AutomationElementIdentifiers.AsyncContentLoadedEvent AsyncContentLoadedEventArgs
SelectionItemPattern.ElementAddedToSelectionEvent

SelectionItemPattern.ElementRemovedFromSelectionEvent

SelectionItemPattern.ElementSelectedEvent

SelectionPattern.InvalidatedEvent

InvokePattern.InvokedEvent

AutomationElement.LayoutInvalidatedEvent

AutomationElement.MenuClosedEvent

AutomationElement.MenuOpenedEvent

TextPattern.TextChangedEvent

TextPattern.TextSelectionChangedEvent

AutomationElement.ToolTipClosedEvent

AutomationElement.ToolTipOpenedEvent

WindowPattern.WindowOpenedEvent
SelectionItemPatternIdentifiers.ElementAddedToSelectionEvent

SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent

SelectionItemPatternIdentifiers.ElementSelectedEvent

SelectionPatternIdentifiers.InvalidatedEvent

InvokePatternIdentifiers.InvokedEvent

AutomationElementIdentifiers.LayoutInvalidatedEvent

AutomationElementIdentifiers.MenuClosedEvent

AutomationElementIdentifiers.MenuOpenedEvent

TextPatternIdentifiers.TextChangedEvent

TextPatternIdentifiers.TextSelectionChangedEvent

AutomationElementIdentifiers.ToolTipClosedEvent

AutomationElementIdentifiers.ToolTipOpenedEvent

WindowPatternIdentifiers.WindowOpenedEvent
AutomationEventArgs
AutomationElement.AutomationFocusChangedEvent AutomationElementIdentifiers.AutomationFocusChangedEvent AutomationFocusChangedEventArgs
AutomationElement.AutomationPropertyChangedEvent AutomationElementIdentifiers.AutomationPropertyChangedEvent AutomationPropertyChangedEventArgs
AutomationElement.StructureChangedEvent AutomationElementIdentifiers.StructureChangedEvent StructureChangedEventArgs
WindowPattern.WindowClosedEvent WindowPatternIdentifiers.WindowClosedEvent WindowClosedEventArgs

Argumentos de evento de automação da interface do usuário

As seguintes classes encapsulam argumentos de evento.

Classe Descrição
AsyncContentLoadedEventArgs Contém informações sobre o carregamento assíncrono de conteúdo, incluindo a porcentagem de carregamento concluído.
AutomationEventArgs Contém informações sobre um evento simples que não requer dados extras.
AutomationFocusChangedEventArgs Contém informações sobre uma alteração no foco de entrada de um elemento para outro. Eventos desse tipo são gerados pelo sistema de automação da interface do usuário, não por provedores.
AutomationPropertyChangedEventArgs Contém informações sobre uma alteração no valor de uma propriedade de um elemento ou padrão de controle.
StructureChangedEventArgs Contém informações sobre uma alteração na árvore de automação da interface do usuário.
WindowClosedEventArgs Contém informações sobre o fechamento de uma janela.

Todas as classes de argumento de evento contêm um EventId membro. Esse identificador é encapsulado em AutomationEvent.

Os AutomationEvent objetos usados para identificar eventos são obtidos por provedores a partir de campos em AutomationElementIdentifiers e de classes de identificador de padrão de controlo, como DockPatternIdentifiers. Os campos equivalentes são obtidos por aplicativos cliente a partir de campos em AutomationElement e classes de padrão de controle, como DockPattern.

Para obter uma lista de identificadores de eventos, consulte Eventos de automação da interface do usuário para clientes.

Ver também