Implementace zprostředkovatele automatizace uživatelského rozhraní na straně klienta

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.

V operačních systémech Microsoftu se používá několik různých architektur uživatelského rozhraní, mezi které patří Win32, model Windows Forms a Windows Presentation Foundation (WPF). Microsoft model UI Automation zveřejňuje informace o prvcích uživatelského rozhraní klientům. Model UI Automation ale nemá povědomí o různých typech ovládacích prvků, které existují v těchto architekturách, a o technikách potřebných k extrakci informací z nich. Místo toho tento úkol opustí objekty označované jako zprostředkovatelé. Poskytovatel extrahuje informace z určitého ovládacího prvku a předává je do model UI Automation, který pak klientovi poskytuje konzistentním způsobem.

Poskytovatelé můžou existovat buď na straně serveru, nebo na straně klienta. Zprostředkovatel na straně serveru je implementovaný samotným ovládacím prvku. Prvky WPF implementují poskytovatele, stejně jako všechny ovládací prvky třetích stran napsané s model UI Automation.

Starší ovládací prvky jako win32 a model Windows Forms ale přímo nepodporují model UI Automation. Tyto ovládací prvky jsou obsluhovány poskytovateli, kteří existují v procesu klienta, a získat informace o ovládacích prvcích pomocí komunikace mezi procesy; Například monitorováním zpráv systému Windows do ovládacích prvků a z ovládacích prvků. Tito poskytovatelé na straně klienta se někdy nazývají proxy servery.

Systém Windows Vista poskytuje poskytovatele standardních ovládacích prvků Win32 a model Windows Forms. Náhradní zprostředkovatel navíc poskytuje částečnou podporu model UI Automation všem ovládacím prvkům, které obsluhuje jiný zprostředkovatel nebo proxy server, ale má implementaci microsoft Active Accessibility. Všichni tito poskytovatelé jsou automaticky načteni a k dispozici klientským aplikacím.

Další informace o podpoře ovládacích prvků Win32 a model Windows Forms najdete v tématu model UI Automation Podpora standardních ovládacích prvků.

Aplikace můžou také registrovat další zprostředkovatele na straně klienta.

Distribuce zprostředkovatelů na straně klienta

model UI Automation očekává, že v sestavení spravovaného kódu vyhledá zprostředkovatele na straně klienta. Obor názvů v tomto sestavení by měl mít stejný název jako sestavení. Například sestavení s názvem ContosoProxies.dll by obsahovalo obor názvů ContosoProxies. V oboru názvů vytvořte UIAutomationClientSideProviders třídu. Při implementaci statického ClientSideProviderDescriptionTable pole vytvořte pole ClientSideProviderDescription struktur popisujících zprostředkovatele.

Registrace a konfigurace zprostředkovatelů na straně klienta

Zprostředkovatelé na straně klienta v dynamické knihovně (DLL) jsou načteny voláním RegisterClientSideProviderAssembly. Klientská aplikace nevyžaduje žádnou další akci, aby využila poskytovatele.

Zprostředkovatelé implementované ve vlastním kódu klienta se registrují pomocí RegisterClientSideProviders. Tato metoda přebírá jako argument pole ClientSideProviderDescription struktur, z nichž každá určuje následující vlastnosti:

  • Funkce zpětného volání, která vytvoří objekt zprostředkovatele.

  • Název třídy ovládacích prvků, které bude poskytovatel obsluhovat.

  • Název image aplikace (obvykle úplný název spustitelného souboru), který bude poskytovatel obsluhovat.

  • Příznaky, které určují, jak se název třídy shoduje s třídami oken nalezenými v cílové aplikaci.

Poslední dva parametry jsou volitelné. Klient může zadat název image cílové aplikace, pokud chce pro různé aplikace používat různé zprostředkovatele. Klient může například použít jednoho zprostředkovatele pro ovládací prvek zobrazení seznamu Win32 ve známé aplikaci, která podporuje vzor Více zobrazení, a druhý pro podobný ovládací prvek v jiné známé aplikaci, která není.

Viz také