Sdílet prostřednictvím


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 automatizace uživatelského rozhraní definované v oboru názvů System.Windows.Automation. Nejnovější informace o automatizaci uživatelského rozhraní najdete v tématu rozhraní API služby Windows Automation: Automatizace uživatelského rozhraní.

Toto téma popisuje, jak klienti automatizace uživatelského rozhraní používají události Microsoft UI Automation.

Automatizace uživatelského rozhraní 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 rozsahu. Klient může například naslouchat událostem změny fokusu na všechny prvky automatizace uživatelského rozhraní ve stromu nebo jenom na jednom prvku a jeho potomcích.

Poznámka:

Nepředpokládáme, že všechny možné události vyvolává poskytovatel Microsoft 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 Windows Forms a Win32.

Širší přehled událostí automatizace uživatelského rozhraní najdete v tématu Přehled událostí automatizace uživatelského rozhraní.

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 Typ události 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, které jsou identifikovány pomocí 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 AutomationEventHandler lze nastavit tak, aby zpracovával různé události odlišně podle EventId.

Poznámka:

K zpracování událostí zavření okna přetypujte typ argumentu, který je předán obslužné rutině události jako WindowClosedEventArgs. Vzhledem k tomu, že element Microsoft UI Automation pro okno již není platný, nelze sender použít 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 Problémy s vlákny automatizace uživatelského rozhraní.

Při vypnutí nebo v případě, že události automatizace uživatelského rozhraní už nejsou pro aplikaci zajímavé, by klienti automatizace uživatelského rozhraní 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ší všechny registrované obslužné rutiny událostí.

Například kód najdete v části Přihlášení k odběru událostí automatizace uživatelského rozhraní.

Viz také