Delen via


Overzicht van UI Automation-providers

Notitie

Deze documentatie is bedoeld voor .NET Framework-ontwikkelaars die de beheerde UI Automation-klassen willen gebruiken die zijn gedefinieerd in de System.Windows.Automation naamruimte. Zie Windows Automation-API: UI Automation voor de meest recente informatie over UI Automation.

UI Automation-providers maken besturingselementen mogelijk om te communiceren met UI Automation-clienttoepassingen. Over het algemeen wordt elk besturingselement of ander afzonderlijk element in een gebruikersinterface (UI) vertegenwoordigd door een provider. De provider geeft informatie weer over het element en implementeert eventueel besturingspatronen waarmee de clienttoepassing kan communiceren met het besturingselement.

Clienttoepassingen hoeven meestal niet rechtstreeks met providers te werken. De meeste standaardbesturingselementen in toepassingen die gebruikmaken van de Frameworks Win32, Windows Forms of Windows Presentation Foundation (WPF) worden automatisch blootgesteld aan het UI Automation-systeem. Toepassingen die aangepaste besturingselementen implementeren, kunnen ook UI Automation-providers implementeren voor deze besturingselementen en clienttoepassingen hoeven geen speciale stappen uit te voeren om er toegang toe te krijgen.

In dit onderwerp vindt u een overzicht van de wijze waarop ontwikkelaars ui Automation-providers implementeren, met name voor besturingselementen in Windows Forms en Win32-vensters.

Typen providers

UI Automation-providers vallen in twee categorieën: providers aan de clientzijde en providers aan de serverzijde.

Providers aan de clientzijde

Providers aan de clientzijde worden geïmplementeerd door UI Automation-clients om te communiceren met een toepassing die geen ondersteuning biedt of die geen volledige ondersteuning biedt voor UI Automation. Providers aan de clientzijde communiceren meestal met de server over de procesgrens door Windows-berichten te verzenden en te ontvangen.

Omdat UI Automation-providers voor besturingselementen in Win32-, Windows Forms- of WPF-toepassingen worden geleverd als onderdeel van het besturingssysteem, hoeven clienttoepassingen zelden hun eigen providers te implementeren. In dit overzicht worden deze niet verder behandeld.

Providers aan serverzijde

Providers aan de serverzijde worden geïmplementeerd door aangepaste besturingselementen of door toepassingen die zijn gebaseerd op een ander UI-framework dan Win32, Windows Forms of WPF.

Providers aan de serverzijde communiceren met clienttoepassingen over de procesgrens door interfaces beschikbaar te maken voor het CORE-systeem van UI Automation, dat op zijn beurt aanvragen van clients verwerkt.

Concepten van UI Automation-provider

In deze sectie vindt u korte uitleg over enkele van de belangrijkste concepten die u moet begrijpen om UI Automation-providers te implementeren.

Elementen

UI Automation-elementen zijn onderdelen van de gebruikersinterface (UI) die zichtbaar zijn voor UI Automation-clients. Voorbeelden zijn toepassingsvensters, deelvensters, knoppen, knopinfo, keuzelijsten en lijstitems.

UI Automation-elementen worden beschikbaar gesteld aan clients als een UI Automation-structuur. Ui Automation bouwt de structuur door van het ene element naar het andere te navigeren. Navigatie wordt ingeschakeld door de providers voor elk element, die elk kunnen verwijzen naar een bovenliggende, broers en zussen en onderliggende elementen.

Zie Overzicht van de UI Automation-structuur voor meer informatie over de clientweergave van de UI Automation-structuur.

Weergaven

Een client kan de UI Automation-structuur in drie hoofdweergaven zien, zoals wordt weergegeven in de volgende tabel.

Beeld Beschrijving
Onbewerkte weergave Bevat alle elementen.
Besturingselementweergave Bevat elementen die besturingselementen zijn.
Inhoudsweergave Bevat elementen met inhoud.

Zie Overzicht van UI Automation-structuur voor meer informatie over clientweergaven van de UI Automation-structuur.

Het is de verantwoordelijkheid van de implementatie van de provider om een element te definiëren als een inhoudselement of een besturingselement. Besturingselementen kunnen al dan niet ook inhoudselementen zijn, maar alle inhoudselementen zijn besturingselementen.

Frameworks

Een framework is een onderdeel waarmee onderliggende besturingselementen, hittests en rendering in een gebied van het scherm worden beheerd. Een Win32-venster, vaak een HWND genoemd, kan bijvoorbeeld fungeren als een framework dat meerdere UI Automation-elementen bevat, zoals een menubalk, een statusbalk en knoppen.

Win32-containerbesturingselementen, zoals keuzelijsten en structuurweergaven, worden beschouwd als frameworks, omdat ze hun eigen code bevatten voor het weergeven van onderliggende items en het uitvoeren van hittests. Een WPF-keuzelijst is daarentegen geen framework, omdat de rendering en hit-testing worden verwerkt door het met WPF-venster.

De gebruikersinterface in een toepassing kan bestaan uit verschillende frameworks. Een HWND-toepassingsvenster kan bijvoorbeeld Dynamische HTML (DHTML) bevatten die op zijn beurt een onderdeel bevat, zoals een keuzelijst met invoervak in een HWND.

Fragmenten

Een fragment is een volledige substructuur van elementen uit een bepaald framework. Het element op het hoofdknooppunt van de substructuur wordt een fragmenthoofdmap genoemd. Een fragmenthoofdmap heeft geen bovenliggend element, maar wordt gehost in een ander framework, meestal een Win32-venster (HWND).

Hosts

Het hoofdknooppunt van elk fragment moet worden gehost in een element, meestal een Win32-venster (HWND). De uitzondering is het bureaublad, dat niet wordt gehost in een ander element. De host van een aangepast besturingselement is de HWND van het besturingselement zelf, niet het toepassingsvenster of een ander venster dat groepen besturingselementen op het hoogste niveau kan bevatten.

De host van een fragment speelt een belangrijke rol bij het leveren van UI Automation-services. Het maakt navigatie naar de fragmenthoofdmap mogelijk en levert enkele standaardeigenschappen zodat de aangepaste provider deze niet hoeft te implementeren.

Zie ook