Implementierung eines clientseitigen Benutzeroberflächenautomatisierungs-Anbieters

HinweisHinweis

Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.Aktuelle Informationen zu UI Automation finden Sie unter Windows Automation API: UI Automation.

Mehrere verschiedene user interface (UI)-Frameworks werden innerhalb von Microsoft-Betriebssystemen verwendet, darunter Win32, Windows Forms und Windows Presentation Foundation (WPF). Microsoft UI Automation macht Informationen zu Benutzeroberflächenelementen für Clients verfügbar. UI Automation selbst unterscheidet jedoch nicht zwischen den unterschiedlichen Steuerelementtypen, die in diesen Frameworks vorhanden sind, auch sind die Techniken nicht bekannt, die benötigt werden, um Informationen aus ihnen zu extrahieren. Diese Aufgabe wird Objekten, die als Anbieter bezeichnet werden, überlassen. Ein Anbieter extrahiert Informationen aus einem bestimmen Steuerelement und übergibt diese Informationen an UI Automation, durch die diese dem Client in konsistenter Form präsentiert werden.

Anbieter können entweder serverseitig oder clientseitig vorhanden sein. Ein serverseitiger Anbieter wird vom Steuerelement selbst implementiert. WPF-Elemente implementieren Anbieter. Dies kann auch von Steuerelementen eines Drittanbieters durchgeführt werden, wenn sie unter Beachtung von UI Automation geschrieben wurden.

Ältere Steuerelemente, wie jene in Win32 und Windows Forms, unterstützen jedoch UI Automation nicht direkt. Diese Steuerelemente erhalten Informationen stattdessen von Anbietern, die im Clientprozess vorhanden sind und Informationen über Steuerelemente mithilfe von prozessübergreifender Kommunikation erlangen, z. B. durch das Überwachen von Windows-Meldungen von und zu den Steuerelementen. Solche clientseitigen Anbieter werden manchmal als Proxys bezeichnet.

Windows Vista stellt Anbieter für Standard-Win32-Steuerelemente und Standard-Windows Forms-Steuerelemente bereit. Zusätzlich ermöglicht ein Fallback-Anbieter teilweise UI Automation-Unterstützung für alle Steuerelemente, die ihre Informationen nicht von einem anderen serverseitigen Anbieter oder Proxy erhalten, sondern über eine Microsoft Active Accessibility-Implementierung verfügen. Diese Anbieter werden automatisch geladen und sind für Clientanwendungen verfügbar.

Weitere Informationen zur Unterstützung für Win32-Steuerelemente und Windows Forms-Steuerelemente finden Sie unter Benutzeroberflächenautomatisierungs-Unterstützung für Standardsteuerelemente.

Anwendungen können auch andere clientseitige Anbieter registrieren.

Dieses Thema enthält folgende Abschnitte.

  • Verteilen von clientseitigen Anbietern
  • Registrieren und Konfigurieren von clientseitigen Anbietern
  • Verwandte Abschnitte

Verteilen von clientseitigen Anbietern

UI Automation erwartet clientseitige Anbieter in einer Assembly mit verwaltetem Code. Der Namespace in dieser Assembly sollte über den gleichen Namen wie die Assembly verfügen. Eine Assembly mit dem Namen ContosoProxies.dll würde z. B. den ContosoProxies-Namespace enthalten. Erstellen Sie innerhalb des Namespace eine UIAutomationClientSideProviders-Klasse. Erstellen Sie in der Implementierung des statischen ClientSideProviderDescriptionTable-Felds ein Array von ClientSideProviderDescription-Strukturen, das die Anbieter beschreibt.

Registrieren und Konfigurieren von clientseitigen Anbietern

Clientseitige Anbieter in einer dynamic-link library (DLL) werden geladen, indem RegisterClientSideProviderAssembly aufgerufen wird. Von einer Clientanwendung ist zur Nutzung der Anbieter keine weitere Aktion erforderlich.

Anbieter, die im Code des Clients implementiert sind, werden durch die Verwendung von RegisterClientSideProviders registriert. Diese Methode verwendet als Argument ein Array von ClientSideProviderDescription-Strukturen, von denen jede die folgenden Eigenschaften angibt:

  • Eine Rückruffunktion, die das Anbieterobjekt erstellt.

  • Einen Klassennamen der Steuerelemente, die Informationen vom Anbieter erhalten.

  • Einen Abbildnamen der Anwendung (normalerweise der vollständige Name der ausführbaren Datei), der Informationen vom Anbieter erhält.

  • Flags, die bestimmen, wie der Klassenname mit in der Zielanwendung vorhandenen Fensterklassen verglichen wird.

Die letzten beiden Parameter sind optional. Der Client gibt den Abbildnamen der Zielanwendung an, wenn verschiedene Anbieter für verschiedene Anwendungen verwendet werden sollen. Der Client verwendet z. B. in einer bekannten Anwendung, die ein Muster für mehrere Ansichten unterstützt, einen Anbieter für ein Win32-Listenansicht-Steuerelement und einen zweiten Anbieter für ein ähnliches Steuerelement in einer anderen bekannten Anwendung, die dieses Muster nicht unterstützt.

Siehe auch

Aufgaben

Erstellen eines clientseitigen Benutzeroberflächenautomatisierungs-Anbieters

Implementierung von Benutzeroberflächenautomatisierungs-Anbietern in einer Clientanwendung