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.