Condividi tramite


Eventi di automazione interfaccia utente per i client

Annotazioni

Questa documentazione è destinata agli sviluppatori .NET Framework che vogliono usare le classi di automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per le informazioni più recenti sull'automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.

Questo argomento descrive il modo in cui gli eventi di automazione interfaccia utente Microsoft vengono usati dai client di automazione interfaccia utente.

Automazione interfaccia utente consente ai client di sottoscrivere eventi di interesse. Questa funzionalità migliora le prestazioni eliminando la necessità di eseguire continuamente il polling di tutti gli elementi dell'interfaccia utente nel sistema per verificare se sono state modificate informazioni, struttura o stato.

L'efficienza è migliorata anche dalla capacità di ascoltare gli eventi solo all'interno di un ambito definito. Ad esempio, un client può ascoltare gli eventi di modifica dello stato attivo su tutti gli elementi di Automazione interfaccia utente nell'albero, oppure su un solo elemento e sui suoi discendenti.

Annotazioni

Non presupporre che tutti gli eventi possibili vengano generati da un provider di automazione interfaccia utente Microsoft. Ad esempio, non tutte le modifiche alle proprietà causano la generazione di eventi dai provider proxy standard per i controlli Windows Form e Win32.

Per una visualizzazione più ampia degli eventi di automazione interfaccia utente, vedere Panoramica degli eventi di automazione interfaccia utente.

Sottoscrizione agli eventi

Le applicazioni client sottoscrivono eventi di un determinato tipo registrando un gestore eventi, usando uno dei metodi seguenti.

Metodo Tipo di evento Tipo di argomenti dell'evento Tipo delegato
AddAutomationFocusChangedEventHandler Cambio del focus AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Modifica delle proprietà AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Modifica della struttura StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Tutti gli altri eventi, identificati da un AutomationEvent AutomationEventArgs o WindowClosedEventArgs AutomationEventHandler

Prima di chiamare il metodo, è necessario creare un metodo delegato per gestire l'evento. Se si preferisce, è possibile gestire diversi tipi di eventi in un singolo metodo e passare questo metodo in più chiamate a uno dei metodi nella tabella. Ad esempio, un singolo AutomationEventHandler può essere configurato per gestire vari eventi in modo diverso in base all'oggetto EventId.

Annotazioni

Per elaborare gli eventi di chiusura della finestra, eseguire il cast del tipo di argomento passato al gestore dell'evento come WindowClosedEventArgs. Poiché l'elemento automazione interfaccia utente Microsoft per la finestra non è più valido, non è possibile usare il sender parametro per recuperare le informazioni. Usare GetRuntimeId invece.

Attenzione

Se l'applicazione potrebbe ricevere eventi dalla propria interfaccia utente, non usare il thread dell'interfaccia utente dell'applicazione per sottoscrivere gli eventi o annullare la sottoscrizione. In questo modo potrebbe verificarsi un comportamento imprevedibile. Per ulteriori informazioni, vedere Problemi di threading dell'automazione dell'interfaccia utente.

Alla disattivazione o quando gli eventi di UI Automation non sono più di interesse per l'applicazione, i client di UI Automation devono chiamare uno dei metodi seguenti.

Metodo Descrizione
RemoveAutomationEventHandler Annulla la registrazione di un gestore eventi registrato tramite AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Annulla la registrazione di un gestore eventi registrato tramite AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Annulla la registrazione di un gestore eventi registrato tramite AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers Annulla la registrazione di tutti i gestori eventi registrati.

Per un esempio di codice, vedere Sottoscrivere eventi di automazione interfaccia utente.

Vedere anche