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.

Viz také