Benutzeroberflächenautomatisierungs-Ereignisse für Clients

Hinweis

Diese Dokumentation ist für .NET Framework-Entwickler konzipiert, die die verwalteten Klassen zur Automatisierung der Benutzeroberfläche verwenden möchten, die im Namespace System.Windows.Automation definiert sind. Aktuelle Informationen zur Automatisierung der Benutzeroberfläche finden Sie auf der Seite zur Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.

In diesem Artikel wird erläutert, wie Ereignisse der Microsoft-Benutzeroberflächenautomatisierung von Benutzeroberflächenautomatisierungs-Clients verwendet werden.

Die Benutzeroberflächenautomatisierung ermöglicht es Clients, relevante Ereignisse zu abonnieren. Diese Funktion verbessert die Leistung, weil es nicht mehr erforderlich ist, alle Benutzeroberflächenelemente im System ständig daraufhin abzufragen, ob sich eine Information, eine Struktur oder ein Zustand geändert hat.

Die Effizienz wird auch durch die Möglichkeit verbessert, Ereignissen nur innerhalb eines definierten Umfangs zu lauschen. Beispielsweise kann ein Client den Fokusänderungsereignissen aller Benutzeroberflächenautomatisierungs-Elemente in der Struktur oder nur einem Element und dessen Nachfolgerelementen lauschen.

Hinweis

Gehen Sie nicht davon aus, dass alle potenziellen Ereignisse von einem Microsoft-Benutzeroberflächenautomatisierungs-Anbieter ausgelöst werden. Beispielsweise werden nicht bei allen Eigenschaftenänderungen Ereignisse von den Standardproxyanbietern für Windows Forms- oder Win32-Steuerelemente ausgelöst.

Eine umfassendere Übersicht über Benutzeroberflächenautomatisierungs-Ereignisse finden Sie unter Ereignisübersicht für die Benutzeroberflächenautomatisierung.

Abonnieren von Ereignissen

Clientanwendungen abonnieren Ereignisse einer bestimmten Art, indem sie einen Ereignishandler mit einer der folgenden Methoden registrieren.

Methode Ereignistyp Typ der Ereignisargumente Delegattyp
AddAutomationFocusChangedEventHandler Fokusänderung AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Eigenschaftenänderung AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Strukturänderung StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Alle anderen Ereignisse, die durch ein AutomationEvent-Objekt ermittelt werden AutomationEventArgs oder WindowClosedEventArgs AutomationEventHandler

Vor dem Aufrufen der Methode müssen Sie eine Delegatmethode erstellen, mit der das Ereignis verarbeitet wird. Wenn Sie dies bevorzugen, können Sie verschiedene Arten von Ereignissen in einer einzelnen Methode verarbeiten und diese Methode in mehreren Aufrufen an eine der Methoden in der Tabelle übergeben. Sie können beispielsweise einen einzelnen AutomationEventHandler einrichten, der verschiedene Ereignisse entsprechend der EventId unterschiedlich verarbeitet.

Hinweis

Um Ereignisse für Schließen eines Fensters zu verarbeiten, wandeln Sie den Argumenttyp, der dem Ereignishandler übergeben wird, in WindowClosedEventArgs um. Da das Microsoft-Benutzeroberflächenautomatisierungs-Element für das Fenster nicht mehr gültig ist, können Sie Informationen nicht mit dem sender-Parameter abrufen. Verwenden Sie stattdessen GetRuntimeId.

Achtung

Wenn Ihre Anwendung Ereignisse aus ihrer eigenen Benutzeroberfläche empfangen könnte, sollten Sie nicht den Benutzeroberflächenthread der Anwendung verwenden, um Ereignisse zu abonnieren oder nicht mehr zu abonnieren. Eine solche Vorgehensweise kann zu unvorhersehbarem Verhalten führen. Weitere Informationen finden Sie unter UI Automation Threading Issues.

Beim Herunterfahren, oder wenn Benutzeroberflächenautomatisierungs-Ereignisse nicht mehr für die Anwendung benötigt werden, sollten ein Benutzeroberflächenautomatisierungs-Client eine der folgenden Methoden aufrufen.

Methode Beschreibung
RemoveAutomationEventHandler Hebt die Registrierung eines Ereignishandlers auf, der mit AddAutomationEventHandler registriert wurde.
RemoveAutomationFocusChangedEventHandler Hebt die Registrierung eines Ereignishandlers auf, der mit AddAutomationFocusChangedEventHandler registriert wurde.
RemoveAutomationPropertyChangedEventHandler Hebt die Registrierung eines Ereignishandlers auf, der mit AddAutomationPropertyChangedEventHandler registriert wurde.
RemoveAllEventHandlers Hebt die Registrierung aller registrierten Ereignishandler auf.

Beispielcode finden Sie unter Abonnieren von Benutzeroberflächenautomatisierungs-Ereignissen.

Siehe auch