Implementierung eines clientseitigen Benutzeroberflächenautomatisierungs-Anbieters

Hinweis

Diese Dokumentation richtet sich an .NET Framework Entwickler, die die verwalteten Benutzeroberflächenautomatisierung klassen verwenden möchten, die im -Namespace definiert System.Windows.Automation sind. Die neuesten Informationen zu Benutzeroberflächenautomatisierung finden Sie unter Windows Automation-API: Benutzeroberflächenautomatisierung.

In Microsoft-Betriebssystemen werden verschiedene Benutzeroberflächenframeworks verwendet, einschließlich Win32, Windows Forms und Windows Presentation Foundation (WPF). Microsoft Benutzeroberflächenautomatisierung macht Informationen zu Benutzeroberflächenelementen für Clients verfügbar. allerdings verfügt Benutzeroberflächenautomatisierung selbst nicht über die verschiedenen Arten von Steuerelementen, die in diesen Frameworks vorhanden sind, und über die Techniken, die zum Extrahieren von Informationen aus ihnen erforderlich sind. Diese Aufgabe wird Objekten, die als Anbieter bezeichnet werden, überlassen. Ein Anbieter extrahiert Informationen aus einem bestimmten Steuerelement und übergibt diese Informationen an Benutzeroberflächenautomatisierung, die sie dann dem Client in konsistenter Weise präsentieren.

Anbieter können entweder serverseitig oder clientseitig vorhanden sein. Ein serverseitiger Anbieter wird vom Steuerelement selbst implementiert. WPF-Elemente implementieren Anbieter, ebenso wie alle Steuerelemente von Drittanbietern, die mit Benutzeroberflächenautomatisierung geschrieben wurden.

Ältere Steuerelemente, z. B. in Win32 und Windows Forms, unterstützen jedoch Benutzeroberflächenautomatisierung nicht direkt. Diese Steuerelemente werden stattdessen von Anbietern bedient, die im Clientprozess vorhanden sind, und informationen zu Steuerelementen mit prozessübergreifender Kommunikation abrufen. z. B. durch Überwachung Windows Nachrichten an und von den Steuerelementen. Solche clientseitigen Anbieter werden manchmal als Proxys bezeichnet.

Windows Vista stellt Anbieter für Win32- und Windows Forms-Standardsteuerelemente bereit. Darüber hinaus bietet ein Fallbackanbieter teilweise Benutzeroberflächenautomatisierung Unterstützung für alle Steuerungen, die nicht von einem anderen serverseitigen Anbieter oder Proxy, aber ü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 von Win32- und Windows Forms-Steuerelementen finden Sie unter Benutzeroberflächenautomatisierung-Unterstützung für Standardsteuerelemente.

Anwendungen können auch andere clientseitige Anbieter registrieren.

Verteilen von clientseitigen Anbietern

Benutzeroberflächenautomatisierung erwartet, dass clientseitige Anbieter in einer Assembly mit verwaltetem Code gefunden werden. 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, zur Beschreibung der Anbieter.

Registrieren und Konfigurieren von clientseitigen Anbietern

Clientseitige Anbieter in einer Dll (Dynamic Link Library) werden durch Aufrufen von RegisterClientSideProviderAssembly geladen. 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 RegisterClientSideProvidersregistriert. 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 Imagenamen 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 beiden letzten Parameter sind optional. Der Client gibt den Imagenamen der Zielanwendung an, wenn verschiedene Anbieter für verschiedene Anwendungen verwendet werden sollen. Beispielsweise kann der Client einen Anbieter für ein Win32-Listenansichtssteuerelement in einer bekannten Anwendung verwenden, die das Muster für mehrere Ansichten unterstützt, und einen anderen für ein ähnliches Steuerelement in einer anderen bekannten Anwendung, die dies nicht tut.

Siehe auch