Przegląd dostawców automatyzacji interfejsu użytkownikaUI Automation Providers Overview

Uwaga

Ta dokumentacja jest przeznaczona dla .NET Framework deweloperów, którzy chcą korzystać z zarządzanych Automatyzacja interfejsu użytkownikaUI Automation klas zdefiniowanych w System.Windows.Automation przestrzeni nazw.This documentation is intended for .NET Framework developers who want to use the managed Automatyzacja interfejsu użytkownikaUI Automation classes defined in the System.Windows.Automation namespace. Aby uzyskać najnowsze informacje na temat Automatyzacja interfejsu użytkownikaUI Automation , zobacz interfejs API usługi Windows Automation: Automatyzacja interfejsu użytkownika.For the latest information about Automatyzacja interfejsu użytkownikaUI Automation, see Windows Automation API: UI Automation.

Dostawcy automatyzacji interfejsu użytkownika umożliwiają kontrolowanie komunikacji z aplikacjami klienckimi automatyzacji interfejsu użytkownika.UI Automation providers enable controls to communicate with UI Automation client applications. Ogólnie rzecz biorąc każda kontrolka lub inny odrębny element w interfejs użytkownika (UI)user interface (UI) jest reprezentowany przez dostawcę.In general, each control or other distinct element in a interfejs użytkownika (UI)user interface (UI) is represented by a provider. Dostawca ujawnia informacje o elemencie i opcjonalnie implementuje wzorce kontroli, które umożliwiają aplikacji klienckiej współpracującie z kontrolką.The provider exposes information about the element and optionally implements control patterns that enable the client application to interact with the control.

Aplikacje klienckie zazwyczaj nie muszą bezpośrednio współpracować z dostawcami.Client applications do not usually have to work directly with providers. Większość standardowych kontrolek w aplikacjach korzystających z Win32, Windows Forms lub Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) struktur są automatycznie uwidaczniane w Automatyzacja interfejsu użytkownikaUI Automation systemie.Most of the standard controls in applications that use the Win32, Windows Forms, or Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) frameworks are automatically exposed to the Automatyzacja interfejsu użytkownikaUI Automation system. Aplikacje implementujące niestandardowe kontrolki mogą również implementować Automatyzacja interfejsu użytkownikaUI Automation dostawców dla tych kontrolek, a aplikacje klienckie nie muszą podejmować żadnych specjalnych kroków w celu uzyskania dostępu do nich.Applications that implement custom controls may also implement Automatyzacja interfejsu użytkownikaUI Automation providers for those controls, and client applications do not have to take any special steps to gain access to them.

Ten temat zawiera omówienie sposobu, w jaki deweloperzy kontroli implementują Automatyzacja interfejsu użytkownikaUI Automation dostawców, szczególnie w przypadku formantów w Windows Forms i Windows Win32.This topic provides an overview of how control developers implement Automatyzacja interfejsu użytkownikaUI Automation providers, particularly for controls in Windows Forms and Win32 windows.

Typy dostawcówTypes of Providers

Dostawcy automatyzacji interfejsu użytkownika dzielą się na dwie kategorie: dostawcy po stronie klienta i dostawcy po stronie serwera.UI Automation providers fall into two categories: client-side providers and server-side providers.

Dostawcy po stronie klientaClient-side providers

Dostawcy po stronie klienta są implementowani przez klientów automatyzacji interfejsu użytkownika do komunikowania się z aplikacją, która nie obsługuje lub nie jest w pełni obsługiwana Automatyzacja interfejsu użytkownikaUI Automation .Client-side providers are implemented by UI Automation clients to communicate with an application that does not support, or does not fully support, Automatyzacja interfejsu użytkownikaUI Automation. Dostawcy po stronie klienta zazwyczaj komunikują się z serwerem przez granicę procesu przez wysyłanie i otrzymywanie komunikatów systemu Windows.Client-side providers usually communicate with the server across the process boundary by sending and receiving Windows messages.

Ponieważ dostawcy automatyzacji interfejsu użytkownika dla kontrolek w Win32, Windows Forms lub WPFWPF aplikacjach są dostarczane jako część systemu operacyjnego, aplikacje klienckie rzadko muszą implementować swoich własnych dostawców, a tym samym przeglądem nie jest to jeszcze więcej.Because UI Automation providers for controls in Win32, Windows Forms, or WPFWPF applications are supplied as part of the operating system, client applications seldom have to implement their own providers, and this overview does not cover them further.

Dostawcy po stronie serweraServer-side providers

Dostawcy po stronie serwera są implementowani przez niestandardowe kontrolki lub aplikacje oparte na środowisku interfejsu użytkownika innym niż Win32, Windows Forms lub WPFWPF .Server-side providers are implemented by custom controls or by applications that are based on a UI framework other than Win32, Windows Forms, or WPFWPF.

Dostawcy po stronie serwera komunikują się z aplikacjami klienckimi na granicy procesu przez udostępnienie interfejsów do Automatyzacja interfejsu użytkownikaUI Automation systemu podstawowego, co z kolei obsługuje żądania od klientów.Server-side providers communicate with client applications across the process boundary by exposing interfaces to the Automatyzacja interfejsu użytkownikaUI Automation core system, which in turn serves requests from clients.

Pojęcia dotyczące dostawcy automatyzacji interfejsu użytkownikaUI Automation Provider Concepts

Ta sekcja zawiera krótkie objaśnienia niektórych kluczowych pojęć, które należy zrozumieć w celu wdrożenia dostawców automatyzacji interfejsu użytkownika.This section provides brief explanations of some of the key concepts you need to understand in order to implement UI Automation providers.

ElementyElements

Automatyzacja interfejsu użytkownikaUI Automation elementy są elementami interfejs użytkownika (UI)user interface (UI) , które są widoczne dla klientów automatyzacji interfejsu użytkownika.elements are pieces of interfejs użytkownika (UI)user interface (UI) that are visible to UI Automation clients. Przykłady obejmują okna aplikacji, okienka, przyciski, etykietki narzędzi, pola listy i elementy listy.Examples include application windows, panes, buttons, tooltips, list boxes, and list items.

Automatyzacja interfejsu użytkownikaUI Automation elementy są udostępniane klientom jako Automatyzacja interfejsu użytkownikaUI Automation drzewo.elements are exposed to clients as a Automatyzacja interfejsu użytkownikaUI Automation tree. Automatyzacja interfejsu użytkownikaUI Automation konstruuje drzewo, przechodząc od jednego elementu do drugiego.constructs the tree by navigating from one element to another. Nawigacja jest włączana przez dostawców dla każdego elementu, z których każdy może wskazywać element nadrzędny, elementy równorzędne i elementy podrzędne.Navigation is enabled by the providers for each element, each of which may point to a parent, siblings, and children.

Aby uzyskać więcej informacji na temat widoku klienta Automatyzacja interfejsu użytkownikaUI Automation drzewa, zobacz Omówienie drzewa automatyzacji interfejsu użytkownika.For more information on the client view of the Automatyzacja interfejsu użytkownikaUI Automation tree, see UI Automation Tree Overview.

WidokiViews

Klient może zobaczyć Automatyzacja interfejsu użytkownikaUI Automation drzewo w trzech głównych widokach, jak pokazano w poniższej tabeli.A client can see the Automatyzacja interfejsu użytkownikaUI Automation tree in three principal views, as shown in the following table.

Widok nieprzetworzonyRaw view Zawiera wszystkie elementy.Contains all elements.
Widok kontrolkiControl view Zawiera elementy, które są kontrolkami.Contains elements that are controls.
Widok zawartościContent view Zawiera elementy, które mają zawartość.Contains elements that have content.

Aby uzyskać więcej informacji na temat widoków klienta w Automatyzacja interfejsu użytkownikaUI Automation drzewie, zobacz Omówienie drzewa automatyzacji interfejsu użytkownika.For more information on client views of the Automatyzacja interfejsu użytkownikaUI Automation tree, see UI Automation Tree Overview.

Jest odpowiedzialna za implementację dostawcy, aby zdefiniować element jako element zawartości lub element kontrolny.It is the responsibility of the provider implementation to define an element as a content element or a control element. Elementy kontrolne mogą być również elementami zawartości, ale wszystkie elementy zawartości są elementami kontrolnymi.Control elements may or may not also be content elements, but all content elements are control elements.

StrukturyFrameworks

Platforma jest składnikiem, który zarządza kontrolkami podrzędnymi, testowaniem trafień i renderowaniem w obszarze ekranu.A framework is a component that manages child controls, hit-testing, and rendering in an area of the screen. Na przykład okno Win32, często określane jako HWND, może stanowić strukturę, która zawiera wiele Automatyzacja interfejsu użytkownikaUI Automation elementów, takich jak pasek menu, pasek stanu i przyciski.For example, a Win32 window, often referred to as an HWND, can serve as a framework that contains multiple Automatyzacja interfejsu użytkownikaUI Automation elements such as a menu bar, a status bar, and buttons.

Formanty kontenera Win32, takie jak pola list i widoki drzewa, są uznawane za struktury, ponieważ zawierają własny kod do renderowania elementów podrzędnych i wykonujących na nich Testy trafień.Win32 container controls such as list boxes and tree views are considered to be frameworks, because they contain their own code for rendering child items and performing hit-testing on them. Z kolei WPFWPF pole listy nie jest strukturą, ponieważ renderowanie i testowanie trafień jest obsługiwane przez WPFWPF okno zawierające.By contrast, a WPFWPF list box is not a framework, because the rendering and hit-testing is being handled by the containing WPFWPF window.

Interfejs użytkownikaUIW aplikacji może być składają się z różnych platform.The Interfejs użytkownikaUI in an application can be made up of different frameworks. Na przykład okno aplikacji HWND może zawierać dynamiczny kod HTML (DHTML), który z kolei zawiera składnik, taki jak pole kombi w elemencie HWND.For example, an HWND application window might contain Dynamic HTML (DHTML) which in turn contains a component such as a combo box in an HWND.

FragmentsFragments

Fragment to kompletny poddrzewo elementów z określonej struktury.A fragment is a complete subtree of elements from a particular framework. Element w węźle głównym poddrzewa jest nazywany korzeniem fragmentu.The element at the root node of the subtree is called a fragment root. Katalog główny fragmentu nie ma elementu nadrzędnego, ale jest hostowany w obrębie innej struktury, zazwyczaj okna Win32 (HWND).A fragment root does not have a parent, but is hosted within some other framework, usually a Win32 window (HWND).

HostsHosts

Węzeł główny każdego fragmentu musi być hostowany w elemencie, zazwyczaj okno Win32 (HWND).The root node of every fragment must be hosted in an element, usually a Win32 window (HWND). Wyjątkiem są komputery stacjonarne, które nie są hostowane w żadnym innym elemencie.The exception is the desktop, which is not hosted in any other element. Host kontrolki niestandardowej jest elementem HWND samego formantu, a nie oknem aplikacji ani innym oknem, które może zawierać grupy formantów najwyższego poziomu.The host of a custom control is the HWND of the control itself, not the application window or any other window that might contain groups of top-level controls.

Host fragmentu odgrywa ważną rolę w świadczeniu Automatyzacja interfejsu użytkownikaUI Automation usług.The host of a fragment plays an important role in providing Automatyzacja interfejsu użytkownikaUI Automation services. Umożliwia nawigowanie do głównego fragmentu i udostępnia niektóre właściwości domyślne, aby nie zaimplementował dostawcy niestandardowego.It enables navigation to the fragment root, and supplies some default properties so that the custom provider does not have to implement them.

Zobacz teżSee also