Sdílet prostřednictvím


Přehled zprostředkovatelů automatizace uživatelského rozhraní

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í.

Poskytovatelé automatizace uživatelského rozhraní umožňují ovládacím prvkům komunikovat s klientskými aplikacemi automatizace uživatelského rozhraní. Obecně platí, že každý ovládací prvek nebo jiný odlišný prvek uživatelského rozhraní je reprezentován poskytovatelem. Zprostředkovatel zveřejňuje informace o prvku a volitelně implementuje vzory ovládacích prvků, které klientské aplikaci umožňují interakci s ovládacím prvkem.

Klientské aplikace obvykle nemusí pracovat přímo se zprostředkovateli. Většina standardních ovládacích prvků v aplikacích, které používají architektury Win32, Windows Forms nebo Windows Presentation Foundation (WPF), jsou automaticky zpřístupněny systému automatizace uživatelského rozhraní. Aplikace, které implementují vlastní ovládací prvky, mohou také implementovat zprostředkovatele automatizace uživatelského rozhraní pro tyto ovládací prvky a klientské aplikace nemusí provádět žádné zvláštní kroky pro získání přístupu k nim.

Toto téma obsahuje přehled o tom, jak vývojáři ovládacího prvku implementují zprostředkovatele automatizace uživatelského rozhraní, zejména pro ovládací prvky v oknech Windows Forms a Win32.

Typy poskytovatelů

Zprostředkovatelé automatizace uživatelského rozhraní spadají do dvou kategorií: zprostředkovatelů na straně klienta a zprostředkovatelů na straně serveru.

Poskytovatelé na straně klienta

Poskytovatelé na straně klienta jsou implementováni klienty UI automatizace pro komunikaci s aplikací, která nepodporuje nebo plně nepodporuje UI automatizaci. Zprostředkovatelé na straně klienta obvykle komunikují se serverem přes hranice procesu odesíláním a příjmem zpráv systému Windows.

Vzhledem k tomu, že poskytovatelé automatizace uživatelského rozhraní pro ovládací prvky v aplikacích Win32, Windows Forms nebo WPF jsou dodávány jako součást operačního systému, klientské aplikace musí jen zřídka implementovat vlastní poskytovatele a tento přehled je dále nepokrývá.

Zprostředkovatelé na straně serveru

Poskytovatelé na straně serveru jsou realizováni vlastními ovládacími prvky nebo aplikacemi, které jsou založeny na jiném frameworku uživatelského rozhraní než Win32, Windows Forms nebo WPF.

Poskytovatelé na straně serveru komunikují s klientskými aplikacemi v rámci hranice procesu zveřejněním rozhraní základního systému automatizace uživatelského rozhraní, který zase obsluhuje požadavky od klientů.

Koncepty zprostředkovatele automatizace uživatelského rozhraní

Tato část obsahuje stručné vysvětlení některých klíčových konceptů, které potřebujete pochopit, aby bylo možné implementovat zprostředkovatele automatizace uživatelského rozhraní.

Prvky

Prvky automatizace uživatelského rozhraní jsou části uživatelského rozhraní, které jsou viditelné pro klienty automatizace uživatelského rozhraní. Mezi příklady patří okna aplikací, podokna, tlačítka, popisy tlačítek, seznamy a položky seznamu.

Prvky automatizace uživatelského rozhraní jsou klientům zpřístupněny jako strom automatizace uživatelského rozhraní. Automatizace uživatelského rozhraní vytvoří strom tak, že přejde z jednoho prvku do druhého. Navigace je povolena poskytovateli pro každý prvek, z nichž každý může odkazovat na nadřazené, sourozence a podřízené.

Další informace o zobrazení klienta stromu automatizace uživatelského rozhraní naleznete v tématu Přehled stromu automatizace uživatelského rozhraní.

Pohledy

Klient vidí strom automatizace uživatelského rozhraní ve třech hlavních zobrazeních, jak je znázorněno v následující tabulce.

Zobrazit Popis
Nezpracované zobrazení Obsahuje všechny prvky.
Zobrazení ovládacího prvku Obsahuje prvky, které jsou ovládacími prvky.
Zobrazení obsahu Obsahuje prvky, které mají obsah.

Další informace o zobrazení klienta stromu automatizace uživatelského rozhraní naleznete v tématu Přehled stromu automatizace uživatelského rozhraní.

Je zodpovědností implementace zprostředkovatele definovat prvek jako prvek obsahu nebo ovládací prvek. Prvky ovládacího prvku mohou nebo nemusí být také prvky obsahu, ale všechny prvky obsahu jsou ovládací prvky.

Rámce

Rámec je komponenta, která spravuje podřízené ovládací prvky, testování zásahu a vykreslování v oblasti obrazovky. Například okno Win32, často označované jako HWND, může sloužit jako architektura, která obsahuje více prvků automatizace uživatelského rozhraní, jako je řádek nabídek, stavový řádek a tlačítka.

Ovládací prvky kontejneru Win32, jako jsou seznamová pole a stromová zobrazení, se považují za architektury, protože obsahují vlastní kód pro vykreslování podřízených položek a provádění testování výsledků na nich. Naproti tomu seznam WPF není framework, protože vykreslování a hit-testování zpracovává okno WPF, které obsahuje.

Uživatelské rozhraní v aplikaci může být tvořeno různými architekturami. Například okno aplikace HWND může obsahovat Dynamické HTML (DHTML), které zase obsahuje prvek, například kombinované pole v HWND.

Úlomky

Fragment je kompletní podstrom prvků z konkrétní architektury. Element v kořenovém uzlu podstromu se nazývá kořen fragmentu. Kořen fragmentu nemá nadřazený objekt, ale je hostovaný v některé jiné rozhraní, obvykle v okně Win32 (HWND).

Hostitelé

Kořenový uzel každého fragmentu musí být hostovaný v elementu, obvykle v okně Win32 (HWND). Výjimkou je desktop, který není hostovaný v žádném jiném prvku. Hostitelem vlastního ovládacího prvku je HWND samotného ovládacího prvku, nikoli okno aplikace ani žádné jiné okno, které může obsahovat skupiny ovládacích prvků nejvyšší úrovně.

Hostitel fragmentu hraje důležitou roli při poskytování služeb automatizace uživatelského rozhraní. Umožňuje navigaci do kořene fragmentu a poskytuje některé výchozí vlastnosti, aby je vlastní zprostředkovatel nemusel implementovat.

Viz také