Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Den här dokumentationen är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i System.Windows.Automation namnrymd. Den senaste informationen om UI Automation finns i Windows Automation API: UI Automation.
Det här avsnittet beskriver hur Microsoft UI Automation-händelser används av UI Automation-klienter.
Med UI Automation kan klienter prenumerera på händelser av intresse. Den här funktionen förbättrar prestandan genom att eliminera behovet av att kontinuerligt avsöka alla användargränssnittselement i systemet för att se om någon information, struktur eller tillstånd har ändrats.
Effektiviteten förbättras också genom möjligheten att endast lyssna efter händelser inom ett definierat omfång. En klient kan till exempel lyssna efter fokusändringshändelser på alla UI Automation-element i trädet, eller bara på ett element och dess underordnade element.
Anmärkning
Anta inte att alla möjliga händelser genereras av en Microsoft UI Automation-provider. Till exempel leder inte alla egenskapsändringar till att händelser genereras av standardproxyprovidrar för Windows Forms- och Win32-kontroller.
En bredare vy över UI Automation-händelser finns i UI Automation Events Overview.
Prenumerera på händelser
Klientprogram prenumererar på händelser av ett visst slag genom att registrera en händelsehanterare med någon av följande metoder.
| Metod | Händelsetyp | Typ av händelseargument | Ombudstyp |
|---|---|---|---|
| AddAutomationFocusChangedEventHandler | Fokusändring | AutomationFocusChangedEventArgs | AutomationFocusChangedEventHandler |
| AddAutomationPropertyChangedEventHandler | Egenskapsändring | AutomationPropertyChangedEventArgs | AutomationPropertyChangedEventHandler |
| AddStructureChangedEventHandler | Strukturändring | StructureChangedEventArgs | StructureChangedEventHandler |
| AddAutomationEventHandler | Alla andra händelser som identifieras av en AutomationEvent | AutomationEventArgs eller WindowClosedEventArgs | AutomationEventHandler |
Innan du anropar metoden måste du skapa en delegerad metod för att hantera händelsen. Om du vill kan du hantera olika typer av händelser i en enda metod och skicka den här metoden i flera anrop till någon av metoderna i tabellen. En enskild AutomationEventHandler kan till exempel konfigureras för att hantera olika händelser på olika sätt beroende på EventId.
Anmärkning
Om du vill bearbeta fönster stängda händelser skickar du den argumenttyp som skickas till händelsehanteraren som WindowClosedEventArgs. Eftersom Microsoft UI Automation-elementet för fönstret inte längre är giltigt kan du inte använda parametern sender för att hämta information. Använd GetRuntimeId i stället.
Försiktighet
Om ditt program kan ta emot händelser från sitt eget användargränssnitt ska du inte använda programmets användargränssnittstråd för att prenumerera på händelser eller avbryta prenumerationen. Detta kan leda till oförutsägbart beteende. Mer information finns i UI Automation Threading Issues.
Vid avstängning, eller när UI Automation-händelser inte längre är av intresse för programmet, bör UI Automation-klienter anropa någon av följande metoder.
| Metod | Beskrivning |
|---|---|
| RemoveAutomationEventHandler | Avregistrerar en händelsehanterare som har registrerats med hjälp av AddAutomationEventHandler. |
| RemoveAutomationFocusChangedEventHandler | Avregistrerar en händelsehanterare som har registrerats med hjälp av AddAutomationFocusChangedEventHandler. |
| RemoveAutomationPropertyChangedEventHandler | Avregistrerar en händelsehanterare som har registrerats med hjälp av AddAutomationPropertyChangedEventHandler. |
| RemoveAllEventHandlers | Avregistrerar alla registrerade händelsehanterare. |
Exempelkod finns i Prenumerera på UI Automation-händelser.