Udostępnij za pośrednictwem


Omówienie dostawców automatyzacji interfejsu użytkownika

Dostawca automatyzacji interfejsu użytkownika firmy Microsoft to obiekt oprogramowania, który uwidacznia element interfejsu użytkownika aplikacji, dzięki czemu aplikacje klienckie ułatwień dostępu mogą pobierać informacje o elemecie i wywoływać jego funkcjonalność. Ogólnie rzecz biorąc, każda kontrolka lub inny odrębny element w interfejsie użytkownika ma dostawcę.

Firma Microsoft obejmuje dostawcę dla każdej standardowej kontrolki dostarczanej z platformami Microsoft Win32, Windows Forms i Windows Presentation Foundation (WPF). Oznacza to, że standardowe kontrolki są automatycznie widoczne dla klientów automatyzacji interfejsu użytkownika; Nie trzeba implementować żadnych interfejsów ułatwień dostępu dla standardowych kontrolek.

Jeśli aplikacja zawiera kontrolki niestandardowe, należy zaimplementować dostawców automatyzacji interfejsu użytkownika dla tych kontrolek, aby były dostępne dla aplikacji klienckich ułatwień dostępu. Należy również zaimplementować dostawców dla kontrolek firm trzecich, które nie mają dostawcy. Aby zaimplementować dostawcę, zaimplementuj interfejsy dostawcy automatyzacji interfejsów użytkownika oraz interfejsy wzorców sterowania.

Ten temat zawiera omówienie sposobu, w jaki twórcy oprogramowania implementują dostawców automatyzacji interfejsu użytkownika (UI). Zawiera on następujące sekcje.

Typy dostawców

Dostawcy automatyzacji interfejsu użytkownika dzielą się na dwie kategorie: dostawcy po stronie serwera i dostawcy po stronie klienta (lub serwera proxy).

Dostawca po stronie serwera to obiekt, taki jak niestandardowa kontrolka, który ma własną natywną implementację odpowiednich interfejsów automatyzacji interfejsu użytkownika. Dostawca po stronie serwera komunikuje się z aplikacjami klienckimi przez granicę procesów, ujawniając swoją implementację interfejsów dostawcy do jądra automatyzacji interfejsu użytkownika, które obsługuje żądania od klientów. Aby uzyskać więcej informacji na temat dostawców po stronie serwera, zobacz Implementowanie dostawcy automatyzacji interfejsu użytkownika Server-Side.

Dostawca po stronie klienta lub serwer proxy to obiekt, który implementuje interfejsy dostawcy automatyzacji interfejsu użytkownika w imieniu kontrolki, lecz nie zawiera pełnej implementacji własnego dostawcy. Bez proxy taka kontrolka jest w dużej mierze nieprzejrzysta dla automatyzacji interfejsu użytkownika, który może dostarczać tylko podstawowe informacje dostępne z uchwytu okna (HWND), takie jak lokalizacja kontrolki. Zazwyczaj dostawcy serwerów proxy komunikują się z aplikacją przez granicę procesu, wysyłając i odbierając komunikaty systemu Windows. Aby uzyskać więcej informacji, zobacz Implementowanie dostawcy automatyzacji interfejsu użytkownika Client-Side (Proxy).

Pojęcia dotyczące dostawcy automatyzacji interfejsu użytkownika

Ta sekcja zawiera krótkie wyjaśnienia niektórych kluczowych pojęć, które należy zrozumieć, aby zaimplementować dostawców automatyzacji interfejsu użytkownika.

Pierwiastki

Elementy automatyzacji interfejsu użytkownika to elementy interfejsu użytkownika — zazwyczaj okna lub kontrolki — które są widoczne dla klientów automatyzacji interfejsu użytkownika. Przykłady obejmują okna aplikacji, okienka, przyciski, etykietki narzędzi, pola listy i elementy listy.

Elementy automatyzacji interfejsu użytkownika są widoczne dla klientów jako drzewo. Automatyzacja interfejsu użytkownika konstruuje drzewo, przechodząc z jednego elementu do innego. Nawigacja jest włączona przez dostawcę dla każdego elementu. Każdy element może wskazywać na swój własny element nadrzędny, swoje elementy równorzędne oraz swoje pierwsze i ostatnie elementy podrzędne.

Klient może zobaczyć drzewo automatyzacji interfejsu użytkownika w trzech widokach głównych, zgodnie z opisem w poniższej tabeli:

Widok Opis
Widok pierwotny Zawiera wszystkie elementy.
Widok kontrolny Zawiera elementy będące kontrolkami.
Widok zawartości Zawiera elementy sterujące, które przekazują informacje użytkownikowi.

 

Odpowiedzialnością dostawcy przy implementacji jest zdefiniowanie elementu jako elementu zawartości lub elementu sterującego. Elementy sterujące mogą, ale nie muszą być elementami zawartości, ale wszystkie elementy zawartości są elementami sterującymi.

Aby uzyskać więcej informacji na temat widoku z perspektywy klienta na drzewo, zobacz Omówienie drzewa automatyzacji interfejsu użytkownika.

Frameworki

Framework to komponent, który zarządza kontrolkami podrzędnymi, testowaniem trafień i renderowaniem w obszarze ekranu. Na przykład okno Win32, często nazywane HWND, może służyć jako struktura zawierająca wiele elementów automatyzacji interfejsu użytkownika, takich jak pasek menu, pasek stanu i przyciski.

Kontrolki kontenera Win32, takie jak pola listy i kontrolki widoku drzewa, są uważane za frameworki, ponieważ zawierają własny kod do renderowania elementów podrzędnych i testowania trafień na nich. Z kolei pole listy WPF nie jest strukturą, ponieważ renderowanie i testowanie trafień jest obsługiwane przez okno zawierające.

Interfejs użytkownika w aplikacji może składać się z różnych struktur. Na przykład HWND w aplikacji może zawierać dynamiczny HTML (DHTML), który z kolei może zawierać składnik, taki jak pole kombi w HWND.

Fragmenty

Pełne poddrzewo elementów z określonej struktury jest nazywane fragmentem. Element w węźle głównym poddrzewa jest nazywany korzeniem fragmentu. Korzeń fragmentu nie ma rodzica, ale jest hostowany w innej strukturze, zwykle w oknie Win32 (HWND).

Hostów

Węzeł główny każdego fragmentu musi być hostowany w elemecie, zazwyczaj w oknie Win32 (HWND). Wyjątkiem jest pulpit, który nie jest hostowany w żadnym innym elemecie. Hostem kontrolki niestandardowej jest HWND samej kontrolki, a nie okno aplikacji lub inne okno, które może zawierać grupy kontrolek najwyższego poziomu.

Host fragmentu odgrywa ważną rolę w dostarczaniu usług automatyzacji interfejsu użytkownika. Umożliwia nawigację do korzenia fragmentu i dostarcza pewne właściwości domyślne, dzięki czemu dostawca niestandardowy nie musi ich implementować.

koncepcyjny

Implementowanie Client-Side dostawcy automatyzacji interfejsu użytkownika

Implementowanie dostawcy automatyzacji interfejsu użytkownika Server-Side

Omówienie drzewa automatyzacji interfejsu użytkownika