Overzicht van UI Automation
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.
Microsoft UI Automation is het nieuwe toegankelijkheidsframework voor Microsoft Windows, beschikbaar op alle besturingssystemen die Windows Presentation Foundation (WPF) ondersteunen.
UI Automation biedt programmatische toegang tot de meeste gebruikersinterface-elementen (UI) op het bureaublad, waardoor ondersteunende technologieproducten, zoals schermlezers, informatie kunnen verstrekken over de gebruikersinterface voor eindgebruikers en de gebruikersinterface kunnen manipuleren via andere dan standaardinvoer. Ui Automation biedt ook geautomatiseerde testscripts de mogelijkheid om te communiceren met de gebruikersinterface.
Notitie
UI Automation maakt geen communicatie mogelijk tussen processen die door verschillende gebruikers zijn gestart via de opdracht Uitvoeren als .
UI Automation-clienttoepassingen kunnen worden geschreven met de zekerheid dat ze aan meerdere frameworks werken. De ui Automation-kernmaskert eventuele verschillen in de frameworks die verschillende onderdelen van de gebruikersinterface vormen. De eigenschap van een WPF-knop, de Caption
eigenschap van een Win32-knop en de ALT
eigenschap van een HTML-afbeelding zijn bijvoorbeeld Content
allemaal toegewezen aan één eigenschap, Namein de weergave UI Automation.
UI Automation biedt volledige functionaliteit op ondersteunde Windows-besturingssystemen waarop .NET Framework wordt uitgevoerd (zie .NET Framework-systeemvereisten of -versies van .NET Core vanaf .NET Core 3.0.
UI Automation-providers bieden enige ondersteuning voor Microsoft Active Accessibility-clienttoepassingen via een ingebouwde overbruggingsservice.
Providers en clients
UI Automation heeft vier hoofdonderdelen, zoals wordt weergegeven in de volgende tabel.
Onderdeel | Beschrijving |
---|---|
Provider-API (UIAutomationProvider.dll en UIAutomationTypes.dll) | Een set interfacedefinities die worden geïmplementeerd door UI Automation-providers, objecten die informatie bieden over UI-elementen en reageren op programmatische invoer. |
Client-API (UIAutomationClient.dll en UIAutomationTypes.dll) | Een set typen voor beheerde code waarmee UI Automation-clienttoepassingen informatie over de gebruikersinterface kunnen verkrijgen en invoer naar besturingselementen kunnen verzenden. |
UiAutomationCore.dll | De onderliggende code (ook wel de UI Automation-kern genoemd) die communicatie tussen providers en clients afhandelt. |
UIAutomationClientsideProviders.dll | Een set UI Automation-providers voor standaard verouderde besturingselementen. (WPF-besturingselementen hebben systeemeigen ondersteuning voor UI Automation.) Deze ondersteuning is automatisch beschikbaar voor clienttoepassingen. |
Vanuit het perspectief van softwareontwikkelaars zijn er twee manieren om UI Automation te gebruiken: om ondersteuning te maken voor aangepaste besturingselementen (met behulp van de provider-API) en toepassingen te maken die gebruikmaken van de UI Automation-kern om te communiceren met UI-elementen (met behulp van de client-API). Afhankelijk van uw focus, moet u verwijzen naar verschillende onderdelen van de documentatie. In de volgende secties vindt u meer informatie over de concepten en praktische praktische kennis.
Sectie | Onderwerp | Doelgroep |
---|---|---|
Basisprincipes van UI Automation (deze sectie) | Uitgebreide overzichten van de concepten. | Alles. |
UI Automation-providers voor beheerde code | Overzichten en procedures om u te helpen de provider-API te gebruiken. | Beheer ontwikkelaars. |
UI Automation-clients voor beheerde code | Overzichten en procedures om u te helpen de client-API te gebruiken. | Ontwikkelaars van clienttoepassingen. |
Ui Automation-besturingspatronen | Informatie over hoe controlepatronen moeten worden geïmplementeerd door providers en welke functionaliteit beschikbaar is voor clients. | Alles. |
Ui Automation-tekstpatroon | Informatie over hoe het tekstbeheerpatroon moet worden geïmplementeerd door providers en welke functionaliteit beschikbaar is voor clients. | Alles. |
Typen ui-automatiseringsbeheer | Informatie over de eigenschappen en besturingspatronen die worden ondersteund door verschillende typen besturingselementen. | Alles. |
De volgende tabel bevat UI Automation-naamruimten, de DLL's die deze bevatten en de doelgroep die ze gebruikt.
Naamruimte | Dll's waarnaar wordt verwezen | Doelgroep |
---|---|---|
System.Windows.Automation | UIAutomationClientUIAutomationTypes | UI Automation-clientontwikkelaars; wordt gebruikt om objecten te vinden AutomationElement , u te registreren voor UI Automation-gebeurtenissen en te werken met UI Automation-besturingspatronen. |
System.Windows.Automation.Provider | UIAutomationProviderUIAutomationTypes | Ontwikkelaars van UI Automation-providers voor andere frameworks dan WPF. |
System.Windows.Automation.Text | UIAutomationClientUIAutomationTypes | Ontwikkelaars van UI Automation-providers voor andere frameworks dan WPF; wordt gebruikt om het textpattern-besturingselementpatroon te implementeren. |
System.Windows.Automation.Peers | PresentationFramework | Ontwikkelaars van UI Automation-providers voor WPF. |
UI Automation-model
UI Automation maakt elk onderdeel van de gebruikersinterface beschikbaar voor clienttoepassingen als een AutomationElement. Elementen bevinden zich in een structuurstructuur, met het bureaublad als hoofdelement. Clients kunnen de onbewerkte weergave van de structuur filteren als een besturingsweergave of een inhoudsweergave. Toepassingen kunnen ook aangepaste weergaven maken.
AutomationElement objecten maken algemene eigenschappen beschikbaar van de UI-elementen die ze vertegenwoordigen. Een van deze eigenschappen is het besturingselementtype, dat het basis uiterlijk en de functionaliteit definieert als één herkenbare entiteit: bijvoorbeeld een knop of selectievakje.
Daarnaast maken elementen besturingspatronen beschikbaar die eigenschappen bieden die specifiek zijn voor hun besturingstypen. Controlepatronen maken ook methoden beschikbaar waarmee clients meer informatie over het element kunnen krijgen en invoer kunnen leveren.
Notitie
Er is geen een-op-een-correspondentie tussen besturingstypen en controlepatronen. Een besturingselementpatroon kan worden ondersteund door meerdere typen besturingselementen en een besturingselement kan meerdere besturingspatronen ondersteunen, die elk verschillende aspecten van het gedrag ervan blootstellen. Een keuzelijst met invoervak heeft bijvoorbeeld ten minste twee besturingspatronen: een die de mogelijkheid vertegenwoordigt om uit te vouwen en samen te vouwen, en een andere die het selectiemechanisme vertegenwoordigt. Zie Ui Automation-besturingstypen voor specifieke informatie.
UI Automation biedt ook informatie aan clienttoepassingen via gebeurtenissen. In tegenstelling tot WinEvents zijn UI Automation-gebeurtenissen niet gebaseerd op een broadcast-mechanisme. UI Automation-clients registreren zich voor specifieke gebeurtenismeldingen en kunnen aanvragen dat specifieke UI Automation-eigenschappen en controlepatroongegevens worden doorgegeven aan hun gebeurtenis-handlers. Daarnaast bevat een UI Automation-gebeurtenis een verwijzing naar het element dat het heeft gegenereerd. Providers kunnen de prestaties verbeteren door selectief gebeurtenissen te genereren, afhankelijk van of clients luisteren.