Delen via


Ui Automation-gebeurtenissen voor clients

Notitie

Deze documentatie is bedoeld voor .NET Framework-ontwikkelaars die de beheerde UI Automation-klassen willen gebruiken die zijn gedefinieerd in de System.Windows.Automation naamruimte. Zie Windows Automation-API: UI Automation voor de meest recente informatie over UI Automation.

In dit onderwerp wordt beschreven hoe Microsoft UI Automation-gebeurtenissen worden gebruikt door UI Automation-clients.

Met UI Automation kunnen clients zich abonneren op interessante gebeurtenissen. Deze mogelijkheid verbetert de prestaties door de noodzaak om voortdurend alle ui-elementen in het systeem te peilen om te zien of er informatie, structuur of status is gewijzigd.

Efficiëntie wordt ook verbeterd door de mogelijkheid om alleen te luisteren naar gebeurtenissen binnen een gedefinieerd bereik. Een client kan bijvoorbeeld luisteren naar gebeurtenissen voor focuswijziging op alle UI Automation-elementen in de structuur of op slechts één element en de onderliggende elementen.

Notitie

Neem niet aan dat alle mogelijke gebeurtenissen worden gegenereerd door een Microsoft UI Automation-provider. Niet alle eigenschapswijzigingen zorgen er bijvoorbeeld voor dat gebeurtenissen worden gegenereerd door de standaardproxyproviders voor Windows Forms- en Win32-besturingselementen.

Zie Overzicht van UI Automation-gebeurtenissen voor een breder overzicht van UI Automation-gebeurtenissen.

Abonneren op gebeurtenissen

Clienttoepassingen abonneren zich op gebeurtenissen van een bepaald type door een gebeurtenis-handler te registreren met behulp van een van de volgende methoden.

Wijze Gebeurtenistype Type gebeurtenisargumenten Type gemachtigde
AddAutomationFocusChangedEventHandler Focuswijziging AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Eigenschapswijziging AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Structuurwijziging StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Alle andere gebeurtenissen, geïdentificeerd door een AutomationEvent AutomationEventArgs of WindowClosedEventArgs AutomationEventHandler

Voordat u de methode aanroept, moet u een gemachtigde methode maken om de gebeurtenis af te handelen. Als u wilt, kunt u verschillende soorten gebeurtenissen in één methode afhandelen en deze methode doorgeven in meerdere aanroepen naar een van de methoden in de tabel. Een enkele AutomationEventHandler kan bijvoorbeeld worden ingesteld om verschillende gebeurtenissen verschillend af te handelen op basis van de EventId.

Notitie

Als u venster-gesloten gebeurtenissen wilt verwerken, castt u het argumenttype dat wordt doorgegeven aan de gebeurtenis-handler als WindowClosedEventArgs. Omdat het Microsoft UI Automation-element voor het venster niet meer geldig is, kunt u de sender parameter niet gebruiken om informatie op te halen. Gebruik GetRuntimeId in plaats daarvan.

Let op

Als uw toepassing mogelijk gebeurtenissen van een eigen gebruikersinterface ontvangt, gebruikt u de UI-thread van uw toepassing niet om u te abonneren op gebeurtenissen of om u af te melden. Dit kan leiden tot onvoorspelbaar gedrag. Zie Problemen met ui-automatiseringsthreading voor meer informatie.

Bij afsluiten of wanneer UI Automation-gebeurtenissen niet langer van belang zijn voor de toepassing, moeten UI Automation-clients een van de volgende methoden aanroepen.

Wijze Description
RemoveAutomationEventHandler Hiermee maakt u de registratie van een gebeurtenis-handler ongedaan die is geregistreerd met behulp van AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Hiermee maakt u de registratie van een gebeurtenis-handler ongedaan die is geregistreerd met behulp van AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Hiermee maakt u de registratie van een gebeurtenis-handler ongedaan die is geregistreerd met behulp van AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers De registratie van alle geregistreerde gebeurtenis-handlers ongedaan maken.

Zie Bijvoorbeeld code abonneren op UI Automation-gebeurtenissen.

Zie ook