Implementierung eines clientseitigen Benutzeroberflächenautomatisierungs-Anbieters
Hinweis
Diese Dokumentation ist für .NET Framework-Entwickler konzipiert, die die verwalteten Klassen zur Automatisierung der Benutzeroberfläche verwenden möchten, die im Namespace System.Windows.Automation definiert sind. Aktuelle Informationen zur Automatisierung der Benutzeroberfläche finden Sie auf der Seite zur Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.
In Microsoft-Betriebssystemen werden mehrere verschiedene Benutzeroberflächenframeworks verwendet, darunter Win32, Windows Forms und Windows Presentation Foundation (WPF). Mit der Benutzeroberflächenautomatisierung von Microsoft werden Informationen zu Benutzeroberflächenelementen für Clients verfügbar gemacht. Die Benutzeroberflächenautomatisierung selbst unterscheidet jedoch nicht zwischen den unterschiedlichen Steuerelementtypen, die in diesen Frameworks vorhanden sind, und den Techniken, die zum Extrahieren von Informationen daraus erforderlich sind. Diese Aufgabe wird Objekten, die als Anbieter bezeichnet werden, überlassen. Ein Anbieter extrahiert Informationen aus einem bestimmen Steuerelement und übergibt diese Informationen an die Benutzeroberflächenautomatisierung, die sie anschließend dem Client in konsistenter Form präsentiert.
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 diese bereits unter Berücksichtigung der Benutzeroberflächenautomatisierung geschrieben wurden.
Ältere Steuerelemente, wie etwa in Win32 und Windows Forms, unterstützen die Benutzeroberflächenautomatisierung jedoch 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 Standardsteuerelemente in Win32 und Windows Forms bereit. Zusätzlich ermöglicht ein Fallbackanbieter eine teilweise Unterstützung der Benutzeroberflächenautomatisierung 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- und Windows Forms-Steuerelemente finden Sie unter UI Automation Support for Standard Controls (Unterstützung der Benutzeroberflächenautomatisierung für Standardsteuerelemente).
Anwendungen können auch andere clientseitige Anbieter registrieren.
Verteilen von clientseitigen Anbietern
Die Benutzeroberflächenautomatisierung 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, zur Beschreibung der Anbieter.
Registrieren und Konfigurieren von clientseitigen Anbietern
Clientseitige Anbieter in einer DLL (Dynamic Link Library) 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 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. Der Client verwendet z. B. in einer bekannten Anwendung, die das Muster für mehrere Ansichten unterstützt, einen Anbieter für ein Win32-Steuerelement für die Listenansicht und einen zweiten Anbieter für ein ähnliches Steuerelement in einer anderen bekannten Anwendung, die dieses Muster nicht unterstützt.