Översikt över UI Automation

Kommentar

Den här dokumentationen System.Windows.Automation är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i namnområdet. Den senaste informationen om UI Automation finns i Windows Automation API: UI Automation.

Microsoft UI Automation är det nya hjälpmedelsramverket för Microsoft Windows, tillgängligt på alla operativsystem som stöder Windows Presentation Foundation (WPF).

UI Automation ger programmatisk åtkomst till de flesta användargränssnittselement (UI) på skrivbordet, vilket gör det möjligt för hjälpmedelsteknikprodukter som skärmläsare att ge information om användargränssnittet till slutanvändare och att manipulera användargränssnittet med andra medel än standardindata. Med UI Automation kan även automatiserade testskript interagera med användargränssnittet.

Kommentar

UI Automation aktiverar inte kommunikation mellan processer som startats av olika användare via kommandot Kör som .

UI Automation-klientprogram kan skrivas med försäkran om att de kommer att arbeta med flera ramverk. UI Automation-kärnan döljer eventuella skillnader i ramverken som ligger till grund för olika delar av användargränssnittet. Content Egenskapen för en WPF-knapp, Caption egenskapen för en Win32-knapp och ALT egenskapen för en HTML-avbildning mappas till en enda egenskap, Namei vyn UI Automation.

UI Automation ger fullständig funktionalitet på Windows-operativsystem som stöds och kör .NET Framework (se .NET Framework-systemkrav eller versioner av .NET Core från och med .NET Core 3.0.

UI Automation-leverantörer erbjuder visst stöd för Microsoft Active Accessibility-klientprogram via en inbyggd bryggningstjänst.

Leverantörer och klienter

UI Automation har fyra huvudkomponenter, enligt följande tabell.

Komponent beskrivning
Provider-API (UIAutomationProvider.dll och UIAutomationTypes.dll) En uppsättning gränssnittsdefinitioner som implementeras av UI Automation-leverantörer, objekt som ger information om gränssnittselement och svarar på programmatiska indata.
Klient-API (UIAutomationClient.dll och UIAutomationTypes.dll) En uppsättning typer för hanterad kod som gör det möjligt för UI Automation-klientprogram att hämta information om användargränssnittet och skicka indata till kontroller.
UiAutomationCore.dll Den underliggande koden (kallas ibland UI Automation-kärnan) som hanterar kommunikationen mellan leverantörer och klienter.
UIAutomationClientsideProviders.dll En uppsättning UI Automation-leverantörer för äldre standardkontroller. (WPF-kontroller har inbyggt stöd för UI Automation.) Det här stödet är automatiskt tillgängligt för klientprogram.

Från programvaruutvecklarens perspektiv finns det två sätt att använda UI Automation: för att skapa stöd för anpassade kontroller (med hjälp av provider-API:et) och skapa program som använder UI Automation-kärnan för att kommunicera med gränssnittselement (med hjälp av klient-API:et). Beroende på ditt fokus bör du referera till olika delar av dokumentationen. Du kan lära dig mer om begreppen och få praktisk kunskap i följande avsnitt.

Avsnitt Ämnet Målgrupp
Grunderna i UI Automation (det här avsnittet) Breda översikter över begreppen. Alla.
Leverantörer av användargränssnittsautomatisering för hanterad kod Översikter och anvisningar som hjälper dig att använda provider-API:et. Kontrollera utvecklare.
UI Automation-klienter för hanterad kod Översikter och instruktionsavsnitt som hjälper dig att använda klient-API:et. Utvecklare av klientprogram.
Kontrollmönster för användargränssnittsautomatisering Information om hur kontrollmönster ska implementeras av leverantörer och vilka funktioner som är tillgängliga för klienter. Alla.
Textmönster för UI Automation Information om hur textkontrollmönstret ska implementeras av leverantörer och vilka funktioner som är tillgängliga för klienter. Alla.
Kontrolltyper för användargränssnittsautomatisering Information om egenskaper och kontrollmönster som stöds av olika kontrolltyper. Alla.

I följande tabell visas UI Automation-namnområden, DLL:er som innehåller dem och målgruppen som använder dem.

Namnområde Refererade DLL:er Målgrupp
System.Windows.Automation UIAutomationClientUIAutomationTypes UI Automation-klientutvecklare; används för att hitta AutomationElement objekt, registrera dig för UI Automation-händelser och arbeta med UI Automation-kontrollmönster.
System.Windows.Automation.Provider UIAutomationProviderUIAutomationTypes Utvecklare av UI Automation-leverantörer för andra ramverk än WPF.
System.Windows.Automation.Text UIAutomationClientUIAutomationTypes Utvecklare av UI Automation-leverantörer för andra ramverk än WPF; används för att implementera TextPattern-kontrollmönstret.
System.Windows.Automation.Peers PresentationFramework Utvecklare av UI Automation-leverantörer för WPF.

UI Automation-modell

UI Automation exponerar varje del av användargränssnittet för klientprogram som en AutomationElement. Element finns i en trädstruktur, med skrivbordet som rotelement. Klienter kan filtrera den råa vyn för trädet som en kontrollvy eller en innehållsvy. Program kan också skapa anpassade vyer.

AutomationElement objekt exponerar vanliga egenskaper för de gränssnittselement som de representerar. En av dessa egenskaper är kontrolltypen, som definierar dess grundläggande utseende och funktioner som en enda identifierbar entitet: till exempel en knapp eller kryssruta.

Dessutom exponerar element kontrollmönster som ger egenskaper som är specifika för deras kontrolltyper. Kontrollmönster exponerar också metoder som gör det möjligt för klienter att få ytterligare information om elementet och ange indata.

Kommentar

Det finns ingen en-till-en-korrespondens mellan kontrolltyper och kontrollmönster. Ett kontrollmönster kan stödjas av flera kontrolltyper, och en kontroll kan ha stöd för flera kontrollmönster, som var och en exponerar olika aspekter av dess beteende. En kombinationsruta har till exempel minst två kontrollmönster: en som representerar dess möjlighet att expandera och komprimera och en annan som representerar urvalsmekanismen. Mer information finns i Kontrolltyper för användargränssnittsautomatisering.

UI Automation tillhandahåller även information till klientprogram via händelser. Till skillnad från WinEvents baseras inte UI Automation-händelser på en sändningsmekanism. UI Automation-klienter registrerar sig för specifika händelsemeddelanden och kan begära att specifika UI Automation-egenskaper och kontrollmönsterinformation skickas till deras händelsehanterare. Dessutom innehåller en UI Automation-händelse en referens till elementet som skapade den. Leverantörer kan förbättra prestanda genom att höja händelser selektivt, beroende på om några klienter lyssnar.

Se även