Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.