Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacji interfejsu użytkownika zdefiniowanych w przestrzeni nazw System.Windows.Automation. Aby uzyskać najnowsze informacje na temat automatyzacji interfejsu użytkownika, zobacz Windows Automation API: Automatyzacja interfejsu użytkownika.
W systemach operacyjnych firmy Microsoft jest używanych kilka różnych struktur interfejsu użytkownika, w tym Win32, Windows Forms i Windows Presentation Foundation (WPF). Usługa Microsoft UI Automation udostępnia klientom informacje o elementach interfejsu użytkownika. Jednak automatyzacja interfejsu użytkownika nie ma świadomości różnych typów kontrolek, które istnieją w tych strukturach i technik potrzebnych do wyodrębniania z nich informacji. Zamiast tego pozostawia to zadanie obiektom nazywanym dostawcami. Dostawca wyodrębnia informacje z określonej kontrolki i przekazuje te informacje do automatyzacji interfejsu użytkownika, która następnie przedstawia je klientowi w spójny sposób.
Dostawcy mogą istnieć po stronie serwera lub po stronie klienta. Dostawca po stronie serwera jest implementowany przez samą kontrolkę. Elementy WPF implementują dostawców, podobnie jak mogą to robić wszelkie kontrolki innych firm zaprojektowane z myślą o automatyzacji interfejsu użytkownika.
Jednak starsze kontrolki, takie jak te w systemach Win32 i Windows Forms, nie obsługują bezpośrednio automatyzacji interfejsu użytkownika. Te mechanizmy kontroli są obsługiwane przez dostawców, którzy istnieją w procesie klienta i uzyskują informacje o kontrolkach przy użyciu komunikacji między procesami; na przykład przez monitorowanie komunikatów systemu Windows do i z kontrolek. Tacy dostawcy po stronie klienta są czasami nazywani serwerami proxy.
System Windows Vista dostarcza dostawców standardowych kontrolek Win32 i Windows Forms. Ponadto dostawca rezerwowy zapewnia częściową obsługę automatyzacji interfejsu użytkownika dla każdej kontroli, która nie jest obsługiwana przez innego dostawcę lub serwer proxy po stronie serwera, ale ma implementację dostępności Aktywne firmy Microsoft. Wszyscy ci dostawcy są automatycznie ładowani i dostępni do aplikacji klienckich.
Aby uzyskać więcej informacji na temat obsługi kontrolek Win32 i Windows Forms, zobacz Obsługa automatyzacji interfejsu użytkownika dla kontrolek standardowych.
Aplikacje mogą również rejestrować innych dostawców po stronie klienta.
Dystrybucja usług świadczonych przez Client-Side
Automatyzacja interfejsu użytkownika oczekuje, że znajdzie dostawców po stronie klienta w zestawie kodu zarządzanego. Przestrzeń nazw w tym zestawie powinna mieć taką samą nazwę jak zestaw. Na przykład zestaw o nazwie ContosoProxies.dll będzie zawierać przestrzeń nazw ContosoProxies. W przestrzeni nazw utwórz klasę UIAutomationClientSideProviders . W implementacji pola statycznego ClientSideProviderDescriptionTable utwórz tablicę ClientSideProviderDescription struktur opisujących dostawców.
Rejestrowanie i konfigurowanie dostawców Client-Side
Dostawcy po stronie klienta w bibliotece łączy dynamicznych (DLL) są ładowani przez wywołanie metody RegisterClientSideProviderAssembly. Do korzystania z dostawców nie jest wymagane żadne dalsze działanie aplikacji klienckiej.
Dostawcy zaimplementowani we własnym kodzie klienta są rejestrowani za pomocą RegisterClientSideProviders. Ta metoda przyjmuje jako argument tablicę ClientSideProviderDescription struktur, z których każda określa następujące właściwości:
Funkcja wywołania zwrotnego, która tworzy obiekt dostawcy.
Nazwa klasy kontrolek, które będzie obsługiwać dostawca.
Nazwa obrazu aplikacji (zazwyczaj pełna nazwa pliku wykonywalnego), która będzie obsługiwana przez dostawcę.
Flagi, które określają, jak nazwa klasy jest dopasowywana do klas okien znalezionych w aplikacji docelowej.
Ostatnie dwa parametry są opcjonalne. Klient może określić nazwę obrazu aplikacji docelowej, gdy chce używać różnych dostawców dla różnych aplikacji. Na przykład klient może użyć jednego dostawcy dla kontrolki widoku listy Win32 w znanej aplikacji obsługującej wzorzec wiele widoków oraz innego dla podobnej kontrolki w innej znanej aplikacji, która tego wzorca nie obsługuje.