Freigeben über


Ereignisse der Benutzeroberflächenautomatisierung für Clients

Hinweis

Diese Dokumentation richtet sich an .NET Framework-Entwickler, die die verwalteten Benutzeroberflächenautomatisierungs-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind. Die neuesten Informationen zur Benutzeroberflächenautomatisierung finden Sie unter Windows Automation API: Benutzeroberflächenautomatisierung.

In diesem Thema wird beschrieben, wie Microsoft-Benutzeroberflächenautomatisierungsereignisse von Benutzeroberflächenautomatisierungs-Clients verwendet werden.

Die Benutzeroberflächenautomatisierung ermöglicht Es Clients, Ereignisse von Interesse zu abonnieren. Diese Funktion verbessert die Leistung, da nicht ständig alle UI-Elemente im System abgefragt werden müssen, um festzustellen, ob sich Informationen, Struktur oder Zustand geändert haben.

Die Effizienz wird auch durch die Möglichkeit verbessert, nur innerhalb eines definierten Bereichs auf Ereignisse zu lauschen. Beispielsweise kann ein Client auf Fokusänderungsereignisse für alle UI-Automatisierungselemente im Baum oder nur auf ein Element und dessen Nachkommen lauschen.

Hinweis

Gehen Sie nicht davon aus, dass alle möglichen Ereignisse von einem Microsoft-Benutzeroberflächenautomatisierungs-Anbieter ausgelöst werden. Beispielsweise führen nicht alle Eigenschaftsänderungen dazu, dass Ereignisse von den Standardproxyanbietern für Windows Forms- und Win32-Steuerelemente ausgelöst werden.

Eine umfassendere Ansicht der Benutzeroberflächenautomatisierungs-Ereignisse finden Sie unter "Übersicht über Benutzeroberflächenautomatisierungsereignisse".

Abonnieren von Ereignissen

Clientanwendungen abonnieren Ereignisse einer bestimmten Art, indem Sie einen Ereignishandler mithilfe einer der folgenden Methoden registrieren.

Methode Ereignistyp Ereignisargumenttyp Delegattyp
AddAutomationFocusChangedEventHandler Fokusänderung AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Eigenschaftsänderung AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Strukturänderung StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Alle anderen Ereignisse, die durch eine AutomationEvent identifiziert werden AutomationEventArgs oder WindowClosedEventArgs AutomationEventHandler

Bevor Sie die Methode aufrufen, müssen Sie eine Delegatenmethode zum Behandeln des Ereignisses erstellen. Wenn Es Ihnen lieber ist, können Sie verschiedene Arten von Ereignissen in einer einzelnen Methode behandeln und diese Methode in mehreren Aufrufen an eine der Methoden in der Tabelle übergeben. Beispielsweise kann ein einzelner AutomationEventHandler so eingerichtet werden, dass verschiedene Ereignisse abhängig vom EventId unterschiedlich verarbeitet werden.

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 den sender Parameter nicht verwenden, um Informationen abzurufen. Verwenden Sie stattdessen dies GetRuntimeId .

Vorsicht

Wenn Ihre Anwendung möglicherweise Ereignisse von einer eigenen Benutzeroberfläche empfängt, verwenden Sie nicht den UI-Thread Ihrer Anwendung, um Ereignisse zu abonnieren oder das Abonnement abbestellen zu können. Dies kann zu unvorhersehbaren Verhaltensweisen führen. Weitere Informationen finden Sie unter Threadingprobleme bei der Benutzeroberflächenautomatisierung.

Beim Herunterfahren oder wenn Benutzeroberflächenautomatisierungs-Ereignisse für die Anwendung nicht mehr interessant sind, sollten Benutzeroberflächenautomatisierungs-Clients 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ächenautomatisierungsereignissen.

Siehe auch