Události automatizace uživatelského rozhraní pro klienty
Poznámka:
Tato dokumentace je určená pro vývojáře rozhraní .NET Framework, kteří chtějí používat spravované třídy model UI Automation definované v System.Windows.Automation oboru názvů. Nejnovější informace o model UI Automation najdete v tématu Rozhraní API služby Windows Automation: model UI Automation.
Toto téma popisuje, jak klienti model UI Automation používají události microsoft model UI Automation.
model UI Automation umožňuje klientům přihlásit se k odběru zajímavých událostí. Tato funkce zlepšuje výkon díky tomu, že eliminuje nutnost průběžně dotazovat všechny prvky uživatelského rozhraní v systému, abyste zjistili, jestli se nějaké informace, struktura nebo stav změnily.
Efektivita je také vylepšena schopnost naslouchat událostem pouze v rámci definovaného oboru. Klient může například naslouchat událostem změny fokusu na všech model UI Automation elementech ve stromu nebo jenom na jednom prvku a jeho potomcích.
Poznámka:
Nepředpokládáme, že všechny možné události jsou vyvolány poskytovatelem microsoft model UI Automation. Například ne všechny změny vlastností způsobují vyvolání událostí standardními zprostředkovateli proxy pro ovládací prvky model Windows Forms a Win32.
Širší přehled událostí model UI Automation najdete v tématu model UI Automation Přehled událostí.
Přihlášení k odběru událostí
Klientské aplikace se přihlašují k odběru událostí určitého druhu registrací obslužné rutiny události pomocí jedné z následujících metod.
metoda | Event Type | Typ argumentů události | Typ delegáta |
---|---|---|---|
AddAutomationFocusChangedEventHandler | Změna fokusu | AutomationFocusChangedEventArgs | AutomationFocusChangedEventHandler |
AddAutomationPropertyChangedEventHandler | Změna vlastnosti | AutomationPropertyChangedEventArgs | AutomationPropertyChangedEventHandler |
AddStructureChangedEventHandler | Změna struktury | StructureChangedEventArgs | StructureChangedEventHandler |
AddAutomationEventHandler | Všechny ostatní události identifikované AutomationEvent | AutomationEventArgs nebo WindowClosedEventArgs | AutomationEventHandler |
Před voláním metody musíte vytvořit metodu delegáta pro zpracování události. Pokud chcete, můžete zpracovat různé druhy událostí v jedné metodě a předat tuto metodu ve více voláních jedné z metod v tabulce. Například jeden lze nastavit tak, AutomationEventHandler aby zpracovával různé události odlišně podle .EventId
Poznámka:
Chcete-li zpracovat události zavřené v okně, přetypujte typ argumentu, který je předán obslužné rutině události jako WindowClosedEventArgs. Vzhledem k tomu, že element Microsoft model UI Automation pro okno již není platný, nelze použít sender
parametr k načtení informací; použijte GetRuntimeId místo toho.
Upozornění
Pokud vaše aplikace může přijímat události z vlastního uživatelského rozhraní, nepoužívejte vlákno uživatelského rozhraní aplikace k přihlášení k odběru událostí nebo odhlášení odběru. To může vést k nepředvídatelným chováním. Další informace najdete v tématu model UI Automation Problémy s vlákny.
Při vypnutí nebo v případě, že model UI Automation události už nejsou pro aplikaci zajímavé, model UI Automation klienti by měli volat jednu z následujících metod.
metoda | Popis |
---|---|
RemoveAutomationEventHandler | Zruší registraci obslužné rutiny události, která byla zaregistrována pomocí AddAutomationEventHandler. |
RemoveAutomationFocusChangedEventHandler | Zruší registraci obslužné rutiny události, která byla zaregistrována pomocí AddAutomationFocusChangedEventHandler. |
RemoveAutomationPropertyChangedEventHandler | Zruší registraci obslužné rutiny události, která byla zaregistrována pomocí AddAutomationPropertyChangedEventHandler. |
RemoveAllEventHandlers | Zruší registraci všech registrovaných obslužných rutin událostí. |
Například kód najdete v tématu Přihlášení k odběru událostí model UI Automation.