Übersicht über die Benutzeroberflächenautomatisierungs-AnbieterUI Automation Providers Overview

Hinweis

Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten BenutzeroberflächenautomatisierungUI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.This documentation is intended for .NET Framework developers who want to use the managed BenutzeroberflächenautomatisierungUI Automation classes defined in the System.Windows.Automation namespace. Die neuesten Informationen zu BenutzeroberflächenautomatisierungUI Automationfinden Sie unter Windows Automation-API: Automatisierungder Benutzeroberfläche.For the latest information about BenutzeroberflächenautomatisierungUI Automation, see Windows Automation API: UI Automation.

Benutzeroberflächenautomatisierungs-Anbieter ermöglichen Steuerelementen die Kommunikation mit Clientanwendungen für die Automatisierung der Benutzeroberfläche.UI Automation providers enable controls to communicate with UI Automation client applications. Im Allgemeinen wird jedes Steuerelement oder anderes eindeutiges Element auf einer Benutzeroberfläche (User Interface, UI)user interface (UI) von einem Anbieter dargestellt.In general, each control or other distinct element in a Benutzeroberfläche (User Interface, UI)user interface (UI) is represented by a provider. Der Anbieter macht Informationen zum Element verfügbar und implementiert optional Steuerelementmuster, die es der Clientanwendung ermöglichen, mit dem Steuerelement zu interagieren.The provider exposes information about the element and optionally implements control patterns that enable the client application to interact with the control.

Clientanwendungen müssen normalerweise nicht direkt mit Anbietern arbeiten.Client applications do not usually have to work directly with providers. Die meisten Standardsteuerelemente in Anwendungen, die das Win32Win32-, Windows FormsWindows Forms- oder Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) -Framework verwenden, werden automatisch für das BenutzeroberflächenautomatisierungUI Automation -System verfügbar gemacht.Most of the standard controls in applications that use the Win32Win32, Windows FormsWindows Forms, or Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) frameworks are automatically exposed to the BenutzeroberflächenautomatisierungUI Automation system. Anwendungen, die benutzerdefinierte Steuerelemente implementieren, können auch BenutzeroberflächenautomatisierungUI Automation -Anbieter für diese Steuerelemente implementieren, und die Clientanwendungen müssen keine besonderen Schritte ausführen, um Zugriff auf diese zu erlangen.Applications that implement custom controls may also implement BenutzeroberflächenautomatisierungUI Automation providers for those controls, and client applications do not have to take any special steps to gain access to them.

Dieses Thema bietet einen Überblick darüber, wie Steuerelemententwickler BenutzeroberflächenautomatisierungUI Automation -Anbieter implementieren, insbesondere für Steuerelemente in Windows FormsWindows Forms - und Win32Win32 -Fenstern.This topic provides an overview of how control developers implement BenutzeroberflächenautomatisierungUI Automation providers, particularly for controls in Windows FormsWindows Forms and Win32Win32 windows.

AnbietertypenTypes of Providers

Benutzeroberflächenautomatisierungs-Anbieter werden in zwei Kategorien unterteilt: clientseitige und serverseitige Anbieter.UI Automation providers fall into two categories: client-side providers and server-side providers.

Clientseitige AnbieterClient-side providers

Clientseitige Anbieter werden von Benutzeroberflächenautomatisierungs-Clients für die Kommunikation mit einer Anwendung implementiert, die BenutzeroberflächenautomatisierungUI Automationnicht oder nicht vollständig unterstützt.Client-side providers are implemented by UI Automation clients to communicate with an application that does not support, or does not fully support, BenutzeroberflächenautomatisierungUI Automation. Client seitige Anbieter kommunizieren in der Regel über die Prozess Grenze hinweg mit dem Server, indem Sie Windows-Nachrichten senden und empfangen.Client-side providers usually communicate with the server across the process boundary by sending and receiving Windows messages.

Da Benutzeroberflächenautomatisierungs-Anbieter Win32Win32für Steuerelemente in WPFWPF , Windows Forms oder Anwendungen als Teil des Betriebssystems bereitgestellt werden, müssen Client Anwendungen selten ihre eigenen Anbieter implementieren, und in dieser Übersicht werden Sie nicht behandelt. Weitere.Because UI Automation providers for controls in Win32Win32, 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.

Serverseitiger AnbieterServer-side providers

Server seitige Anbieter werden von benutzerdefinierten Steuerelementen oder Anwendungen implementiert, die auf einem anderen Benutzeroberflächen Framework als Win32Win32, Windows Forms oder WPFWPFbasieren.Server-side providers are implemented by custom controls or by applications that are based on a UI framework other than Win32Win32, Windows Forms, or WPFWPF.

Serverseitige Anbieter kommunizieren mit Clientanwendungen über Prozessgrenzen hinweg, indem sie Schnittstellen für das BenutzeroberflächenautomatisierungUI Automation -Kernsystem verfügbar machen, das wiederum Anforderungen von Clients bereitstellt.Server-side providers communicate with client applications across the process boundary by exposing interfaces to the BenutzeroberflächenautomatisierungUI Automation core system, which in turn serves requests from clients.

Konzepte für Benutzeroberflächenautomatisierungs-AnbieterUI Automation Provider Concepts

Dieser Abschnitt bietet kurze Erläuterungen zu einer Auswahl von Schlüsselkonzepten, die Sie kennen müssen, um Benutzeroberflächenautomatisierungs-Anbieter implementieren zu können.This section provides brief explanations of some of the key concepts you need to understand in order to implement UI Automation providers.

ElementsElements

BenutzeroberflächenautomatisierungUI Automation -Elemente sind Bestandteile der Benutzeroberfläche (User Interface, UI)user interface (UI) , die für Benutzeroberflächenautomatisierungs-Clients angezeigt werden.elements are pieces of Benutzeroberfläche (User Interface, UI)user interface (UI) that are visible to UI Automation clients. Zu den entsprechenden Beispielen zählen Anwendungsfenster, Bereiche, Schaltflächen, QuickInfos, Listenfelder und Listenelemente.Examples include application windows, panes, buttons, tooltips, list boxes, and list items.

BenutzeroberflächenautomatisierungUI Automation -Elemente werden für Clients als BenutzeroberflächenautomatisierungUI Automation -Struktur verfügbar gemacht.elements are exposed to clients as a BenutzeroberflächenautomatisierungUI Automation tree. BenutzeroberflächenautomatisierungUI Automation erstellt die Struktur durch Navigieren von einem Element zu einem anderen.constructs the tree by navigating from one element to another. Die Navigation wird von den Anbietern für jedes Element aktiviert, von denen jedes möglicherweise auf ein übergeordnetes, gleichgeordnetes oder untergeordnetes Element verweist.Navigation is enabled by the providers for each element, each of which may point to a parent, siblings, and children.

Weitere Informationen zur Clientansicht der BenutzeroberflächenautomatisierungUI Automation -Struktur finden Sie unter UI Automation Tree Overview.For more information on the client view of the BenutzeroberflächenautomatisierungUI Automation tree, see UI Automation Tree Overview.

AnsichtenViews

Ein Client kann die BenutzeroberflächenautomatisierungUI Automation -Struktur in drei hauptsächlichen Ansichten anzeigen, wie in der folgenden Tabelle dargestellt.A client can see the BenutzeroberflächenautomatisierungUI Automation tree in three principal views, as shown in the following table.

RohdatenansichtRaw view Enthält alle Elemente.Contains all elements.
SteuerelementansichtControl view Enthält Elemente, die Steuerelemente sind.Contains elements that are controls.
InhaltsansichtContent view Enthält Elemente mit Inhalten.Contains elements that have content.

Weitere Informationen zu Clientansichten der BenutzeroberflächenautomatisierungUI Automation -Struktur finden Sie unter UI Automation Tree Overview.For more information on client views of the BenutzeroberflächenautomatisierungUI Automation tree, see UI Automation Tree Overview.

Für die Definition eines Elements als Inhaltselement oder Steuerelement ist die Anbieterimplementierung zuständig.It is the responsibility of the provider implementation to define an element as a content element or a control element. Steuerelemente können auch Inhaltselemente sein, aber alle Inhaltselemente sind auch Steuerelemente.Control elements may or may not also be content elements, but all content elements are control elements.

FrameworksFrameworks

Ein Framework ist eine Komponente, die untergeordneten Steuerelemente, Treffertests und das Rendering in einem Bereich des Bildschirms verwaltet.A framework is a component that manages child controls, hit-testing, and rendering in an area of the screen. Ein Win32Win32 -Fenster, das häufig als HWND bezeichnet wird, kann als Framework dienen, das mehrere BenutzeroberflächenautomatisierungUI Automation -Elemente enthält, z. B. eine Menüleiste, eine Statusleiste und Schaltflächen.For example, a Win32Win32 window, often referred to as an HWND, can serve as a framework that contains multiple BenutzeroberflächenautomatisierungUI Automation elements such as a menu bar, a status bar, and buttons.

Win32Win32 -Containersteuerelemente, z. B. Listenfelder und Strukturansichten, werden als Frameworks betrachtet, da sie ihren eigenen Code zum Rendern der untergeordneten Elemente und zum Ausführen der zugehörigen Treffertests enthalten.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. Im Gegensatz dazu ist ein WPFWPF -Listenfeld kein Framework, da Rendering und Treffertests vom enthaltenen WPFWPF -Fenster übernommen werden.By contrast, a WPFWPF list box is not a framework, because the rendering and hit-testing is being handled by the containing WPFWPF window.

Die UIUI in einer Anwendung kann aus verschiedenen Frameworks bestehen.The UIUI in an application can be made up of different frameworks. Beispielsweise kann ein HWND-Anwendungsfenster dynamisches HTML (DHTML) enthalten, das wiederum eine Komponente enthält, z. b. ein Kombinations Feld in einem 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.

FragmenteFragments

Ein Fragment ist eine vollständige Unterstruktur von Elementen eines bestimmten Frameworks.A fragment is a complete subtree of elements from a particular framework. Das Element im Stammknoten der Unterstruktur wird als Fragmentstamm bezeichnet.The element at the root node of the subtree is called a fragment root. Ein Fragmentstamm besitzt kein übergeordnetes Element, wird aber innerhalb eines anderen Frameworks gehostet, in der Regel in einem Win32Win32 -Fenster (HWND).A fragment root does not have a parent, but is hosted within some other framework, usually a Win32Win32 window (HWND).

HostsHosts

Der Stammknoten jedes Fragments muss in einem Element gehostet werden, in der Regel in einem Win32Win32 -Fenster (HWND).The root node of every fragment must be hosted in an element, usually a Win32Win32 window (HWND). Die Ausnahme stellt der Desktop dar, der in keinem anderen Element gehostet wird.The exception is the desktop, which is not hosted in any other element. Der Host eines benutzerdefinierten Steuerelements ist das HWND des Steuerelements selbst, nicht das Anwendungsfenster oder ein anderes Fenster, das möglicherweise Gruppen von Steuerelementen der obersten Ebene enthält.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.

Der Host eines Fragments spielt bei der Bereitstellung von BenutzeroberflächenautomatisierungUI Automation -Diensten eine wichtige Rolle.The host of a fragment plays an important role in providing BenutzeroberflächenautomatisierungUI Automation services. Er ermöglicht die Navigation zum Fragmentstamm und stellt einige Standardeigenschaften bereit, damit diese nicht vom benutzerdefinierten Anbieter implementiert werden müssen.It enables navigation to the fragment root, and supplies some default properties so that the custom provider does not have to implement them.

Siehe auchSee also