Événements UI Automation pour les clients

Notes

Cette documentation s’adresse aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique décrit comment les événements Microsoft UI Automation sont utilisés par les clients UI Automation.

UI Automation permet aux clients de s’abonner à des événements digne d’intérêt. Cette fonctionnalité améliore les performances en éliminant le besoin d’interroger continuellement tous les éléments d’interface utilisateur du système pour vérifier si des informations, la structure ou l’état ont été modifiés.

L’efficacité est également améliorée par la possibilité d’écouter des événements uniquement dans une portée définie. Par exemple, un client peut écouter des événements de modification de focus sur tous les éléments UI Automation de l’arborescence ou sur un seul élément et ses descendants.

Notes

Ne supposez pas que tous les événements possibles sont déclenchés par un fournisseur Microsoft UI Automation. Par exemple, toutes les modifications de propriété n’entraînent pas nécessairement le déclenchement d’événements par les fournisseurs de proxys standard pour les contrôles Windows Forms et Win32.

La section Vue d’ensemble des événements UI Automation fournit une vue plus large des événements UI Automation.

Abonnement à des événements

Les applications clientes s’abonnent à des événements d’un type particulier en inscrivant un gestionnaire d’événements, à l’aide de l’une des méthodes suivantes.

Méthode Type d'événement Type d'arguments d'événement Type délégué
AddAutomationFocusChangedEventHandler Modification du focus AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Modification de propriété AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Modification de la structure StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Tous les autres événements, identifiés par un AutomationEvent AutomationEventArgs ou WindowClosedEventArgs AutomationEventHandler

Avant d’appeler la méthode, vous devez créer une méthode déléguée pour gérer l’événement. Si vous préférez, vous pouvez gérer différents types d’événements dans une seule méthode et passer cette méthode dans plusieurs appels à l’une des méthodes du tableau. Par exemple, un seul AutomationEventHandler peut être configuré pour gérer divers événements différemment en fonction de EventId.

Notes

Pour traiter les événements de fermeture de fenêtre, effectuez un cast du type d’argument passé au gestionnaire d’événements en tant que WindowClosedEventArgs. Étant donné que l’élément Microsoft UI Automation de la fenêtre n’est plus valide, vous ne pouvez pas utiliser le paramètre sender pour récupérer des informations. Utilisez plutôt GetRuntimeId.

Attention

Si votre application est susceptible de recevoir des événements de sa propre interface utilisateur, n’utilisez pas le thread d’interface utilisateur de votre application pour vous abonner aux événements ou pour annuler l’abonnement. Cela peut entraîner un comportement imprévisible. Pour plus d'informations, consultez UI Automation Threading Issues.

Lors de l’arrêt, ou quand des événements UI Automation ne sont plus intéressants pour l’application, les clients UI Automation doivent appeler l’une des méthodes suivantes.

Méthode Description
RemoveAutomationEventHandler Annule l’inscription d’un gestionnaire d’événements qui a été inscrit à l’aide de AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Annule l’inscription d’un gestionnaire d’événements qui a été inscrit à l’aide de AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Annule l’inscription d’un gestionnaire d’événements qui a été inscrit à l’aide de AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers Annule l’inscription de tous les gestionnaires d’événements inscrits.

Pour obtenir un exemple de code, consultez S’abonner à des événements UI Automation.

Voir aussi