Freigeben über


Implementierung eines clientseitigen Benutzeroberflächenautomatisierungs-Anbieters

Hinweis

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

Mehrere verschiedene Benutzeroberflächenframeworks werden in Microsoft-Betriebssystemen verwendet, darunter Win32, Windows Forms und Windows Presentation Foundation (WPF). Die Microsoft-Benutzeroberflächenautomatisierung macht Informationen zu UI-Elementen für Clients verfügbar. Die Benutzeroberflächenautomatisierung hat jedoch kein Bewusstsein für die verschiedenen Arten von Steuerelementen, die in diesen Frameworks vorhanden sind, und die Techniken, die zum Extrahieren von Informationen aus diesen benötigt werden. Stattdessen wird diese Aufgabe an Objekte, die als Anbieter bezeichnet werden, verlassen. Ein Anbieter extrahiert Informationen aus einem bestimmten Steuerelement und übergibt diese Informationen an die Benutzeroberflächenautomatisierung, wodurch diese dann auf konsistente Weise dem Client präsentiert werden.

Anbieter können entweder auf der Serverseite oder auf der Clientseite vorhanden sein. Ein serverseitiger Provider 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 die steuerelemente in Win32 und Windows Forms unterstützen jedoch nicht direkt die Benutzeroberflächenautomatisierung. Diese Steuerelemente werden stattdessen von Anbietern bereitgestellt, die im Clientprozess vorhanden sind, und Informationen zu Steuerelementen mithilfe der prozessübergreifenden Kommunikation abrufen; Beispielsweise, indem Sie Windows-Nachrichten an und von den Steuerelementen überwachen. Solche clientseitigen Anbieter werden manchmal als Proxys bezeichnet.

Windows Vista stellt Anbieter für standardmäßige Win32- und Windows Forms-Steuerelemente bereit. Darüber hinaus bietet ein Fallbackanbieter teilweise Unterstützung für die UI-Automatisierung für alle Steuerelemente, die nicht von einem anderen serverseitigen Anbieter oder Proxy bereitgestellt werden, aber über eine Implementierung von Microsoft Active Accessibility verfügen. Alle diese Anbieter werden automatisch geladen und stehen für Clientanwendungen zur Verfügung.

Weitere Informationen zur Unterstützung von Win32- und Windows Forms-Steuerelementen finden Sie unter Unterstützung der Benutzeroberflächenautomatisierung für Standardsteuerelemente.

Anwendungen können auch andere clientseitige Anbieter registrieren.

Verteilen von clientseitigen Anbietern

Die 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. Beispielsweise würde eine Assembly namens ContosoProxies.dll den ContosoProxies-Namespace enthalten. Erstellen Sie im Namespace eine UIAutomationClientSideProviders Klasse. Erstellen Sie bei der Implementierung des statischen ClientSideProviderDescriptionTable Felds ein Array von ClientSideProviderDescription Strukturen, die die Anbieter beschreiben.

Registrieren und Konfigurieren von Client-Side-Anbietern

Clientseitige Anbieter in einer DLL (Dynamic Link Library) werden geladen, indem RegisterClientSideProviderAssembly aufgerufen wird. Für die Nutzung der Anbieter ist keine weitere Aktion durch eine Clientanwendung erforderlich.

Im eigenen Code des Clients implementierte Anbieter werden registriert, indem RegisterClientSideProviders verwendet wird. Diese Methode verwendet als Argument ein Array von ClientSideProviderDescription Strukturen, von denen jede die folgenden Eigenschaften angibt:

  • Eine Rückruffunktion, die das Anbieterobjekt erstellt.

  • Der Klassenname der Steuerelemente, die der Anbieter bedient.

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

  • Flags, die steuern, wie der Klassenname mit Fensterklassen in der Zielanwendung abgeglichen wird.

Die letzten beiden Parameter sind optional. Der Client kann den Bildnamen der Zielanwendung angeben, wenn er unterschiedliche Anbieter für verschiedene Anwendungen verwenden möchte. Beispielsweise kann der Client einen Anbieter für ein Win32-Listenansichtssteuerelement in einer bekannten Anwendung verwenden, die das Muster "Mehrfachansicht" unterstützt, und ein anderer für ein ähnliches Steuerelement in einer anderen bekannten Anwendung, die nicht.

Siehe auch