Übersicht über die Benutzeroberflächenautomatisierung
Microsoft UI Automation ist ein Barrierefreiheitsframework für Windows. Sie bietet programmgesteuerten Zugriff auf die meisten Benutzeroberflächenelemente auf dem Desktop. Es ermöglicht hilfsfähigen Technologieprodukten, z. B. Bildschirmsprachausgaben, Endbenutzern Informationen über die Benutzeroberfläche bereitzustellen und die Benutzeroberfläche mit anderen Mitteln als der Standardeingabe zu bearbeiten. Die Benutzeroberflächenautomatisierung ermöglicht außerdem die Interaktion von automatisierten Testskripts mit der Benutzeroberfläche.
Benutzeroberflächenautomatisierung war zuerst in Windows XP als Teil der Microsoft .NET Framework verfügbar. Obwohl zu diesem Zeitpunkt auch eine nicht verwaltete C++-API veröffentlicht wurde, war die Nützlichkeit von Clientfunktionen aufgrund von Interoperabilitätsproblemen eingeschränkt. Für Windows 7 wurde die API im Component Object Model (COM) neu geschrieben.
Hinweis
Obwohl die in der früheren Version von UI Automation eingeführten Bibliotheksfunktionen noch dokumentiert sind, sollten sie nicht in neuen Anwendungen verwendet werden.
Benutzeroberflächenautomatisierungsclientanwendungen können mit der Sicherheit geschrieben werden, dass sie mit mehreren Microsoft Windows-Steuerungsframeworks funktionieren. Der Benutzeroberflächenautomatisierungskern maskiert alle Unterschiede in den Frameworks, die verschiedenen Elementen der Benutzeroberfläche zugrundeliehen. Beispielsweise werden die Content-Eigenschaft einer Windows Presentation Foundation-Schaltfläche (WPF), die Caption-Eigenschaft einer Microsoft Win32-Schaltfläche und die ALT-Eigenschaft eines HTML-Bilds einer einzelnen Eigenschaft, Name, in der Ui Automation-Ansicht zugeordnet.
Benutzeroberflächenautomatisierung bietet vollständige Funktionen unter Windows XP, Windows Server 2003 und höheren Betriebssystemen.
Benutzeroberflächenautomatisierungsanbieter sind Komponenten, die Benutzeroberflächenautomatisierungsunterstützung für Steuerelemente implementieren und über einen integrierten Überbrückungsdienst Unterstützung für Microsoft Active Accessibility-Clientanwendungen bieten.
Hinweis
Die Benutzeroberflächenautomatisierung ermöglicht keine Kommunikation zwischen Prozessen, die von verschiedenen Benutzern über den Befehl Ausführen als gestartet werden.
Dieses Thema enthält folgende Abschnitte:
- Komponenten der Benutzeroberflächenautomatisierung
- Benutzeroberflächenautomatisierungsheaderdateien
- Benutzeroberflächenautomatisierungs-Modell
- Zugehörige Themen
Komponenten der Benutzeroberflächenautomatisierung
Die Benutzeroberflächenautomatisierung verfügt über vier Hauptkomponenten, die in der folgenden Tabelle aufgeführt werden:
Komponente | BESCHREIBUNG |
---|---|
Anbieter-API | Eine Reihe von COM-Schnittstellen, die von Benutzeroberflächenautomatisierungsanbietern implementiert werden. Benutzeroberflächenautomatisierungsanbieter sind Objekte, die Informationen zu UI-Elementen bereitstellen und auf programmgesteuerte Eingaben reagieren. |
Client-API | Eine Reihe von COM-Schnittstellen, mit denen Clientanwendungen Informationen zur Benutzeroberfläche abrufen und Eingaben an Steuerelemente senden können.
Hinweis: Die unter Veraltete Steuerelementmusterfunktionen und veraltete Knotenfunktionen beschriebenen Funktionen sind veraltet. Stattdessen sollten Clientanwendungen die COM-Schnittstellen für die Benutzeroberflächenautomatisierung verwenden, die unter Benutzeroberflächenautomatisierungselementschnittstellen für Clients beschrieben sind. |
UIAutomationCore.dll | Die Laufzeitbibliothek, manchmal auch als Benutzeroberflächenautomatisierungskern bezeichnet, die die Kommunikation zwischen Anbietern und Clients übernimmt. |
Oleacc.dll | Die Laufzeitbibliothek für Microsoft Active Accessibility und die Proxyobjekte. Die Bibliothek stellt auch Proxyobjekte bereit, die vom Microsoft Microsoft Active Accessibility to UI Automation Proxy zur Unterstützung von Win32-Steuerelementen verwendet werden. |
Es gibt zwei Möglichkeiten zur Verwendung der Benutzeroberflächenautomatisierung: Zum Erstellen von Unterstützung für benutzerdefinierte Steuerelemente mithilfe der Anbieter-API und zum Erstellen von Clientanwendungen, die den Benutzeroberflächenautomatisierungskern verwenden, um mit UI-Elementen zu kommunizieren und Informationen zu diesen abzurufen. Abhängig von Ihren Schwerpunkten sollten Sie auf verschiedene Teile der Dokumentation zugreifen. Wenn Sie Unterstützung für benutzerdefinierte Steuerelemente erstellen müssen, finden Sie weitere Informationen unter Programmierhandbuch für Benutzeroberflächenautomatisierungsanbieter. Wenn Sie mit Ui-Elementen kommunizieren oder Informationen zu UI-Elementen abrufen müssen, finden Sie weitere Informationen unter Clientprogrammer-Handbuch für die Benutzeroberflächenautomatisierung.
Benutzeroberflächenautomatisierungsheaderdateien
Die UI Automation-API ist in mehreren verschiedenen C/C++-Headerdateien definiert, die im Windows Software Development Kit (SDK) enthalten sind. Die Benutzeroberflächenautomatisierungsheaderdateien werden in der folgenden Tabelle beschrieben:
Headerdatei | BESCHREIBUNG |
---|---|
UIAutomationClient.h | Definiert die Schnittstellen und zugehörigen Programmierelemente, die von Benutzeroberflächenautomatisierungsclients verwendet werden. |
UIAutomationCore.h | Definiert die Schnittstellen und zugehörigen Programmierelemente, die von Benutzeroberflächenautomatisierungsanbietern verwendet werden. |
UIAutomationCoreApi.h | Definiert allgemeine Konstanten, GUIDs, Datentypen und Strukturen, die von Benutzeroberflächenautomatisierungsclients und -anbietern verwendet werden. Es enthält auch Definitionen für die veralteten Knoten- und Steuerelementmusterfunktionen. |
UIAutomation.h | Enthält alle anderen Benutzeroberflächenautomatisierungsheaderdateien. Da die meisten Benutzeroberflächenautomatisierungsanwendungen Elemente aus allen Benutzeroberflächenautomatisierungsheaderdateien erfordern, ist es am besten, UIAutomation.h in Ihre Benutzeroberflächenautomatisierungsanwendungsprojekte einzuschließen, anstatt jede Datei einzeln einzuschließen. |
Wenn Sie eine Anwendung entwickeln, die die UI Automation-API verwendet, sollten Sie UIAutomation.h in Ihr Projekt einschließen. Wenn Ihre Anwendung Microsoft Active Accessibility unterstützt, fügen Sie die Headerdatei Oleacc.h ein. Benutzeroberflächenautomatisierungsanwendungen, die GUIDs verwenden, erfordern auch die Headerdatei Initguid.h. Bei Bedarf sollte Initguid.h vor UIAutomation.h eingeschlossen werden.
Benutzeroberflächenautomatisierungs-Modell
Die Benutzeroberflächenautomatisierung macht jedes Element der Benutzeroberfläche für Clientanwendungen als objekt verfügbar, das von der IUIAutomationElement-Schnittstelle dargestellt wird. Elemente sind in einer Baumstruktur, mit dem Desktop als Stammelement, enthalten. Clients können die „Rohdatenansicht“ der Struktur als „Steuerelementansicht“ oder „Inhaltsansicht“ filtern. Diese Standardansichten der Struktur können problemlos mithilfe der Inspect-Anwendung angezeigt werden, die im Windows SDK enthalten ist. Anwendungen können auch benutzerdefinierte Ansichten erstellen.
Ein UI Automation-Element macht die Eigenschaften des Steuerelements oder UI-Elements verfügbar, das es darstellt. Eine dieser Eigenschaften ist der Steuerelementtyp, der die grundlegende Darstellung und Funktionalität des Steuerelements oder UI-Elements als einzelne erkennbare Entität definiert, z. B. eine Schaltfläche oder ein Kontrollkästchen. Weitere Informationen zu Steuerelementtypen finden Sie unter Übersicht über Steuerelementtypen der Benutzeroberflächenautomatisierung.
Darüber hinaus macht ein Ui Automation-Element ein oder mehrere Steuerelementmuster verfügbar. Ein Steuerelementmuster stellt eine Reihe von Eigenschaften bereit, die für einen bestimmten Steuerelementtyp spezifisch sind. Ein Steuerelementmuster macht außerdem Methoden verfügbar, mit denen Clientanwendungen weitere Informationen zum Element abrufen und Eingaben für das Element bereitstellen können. Weitere Informationen zu Steuerelementmustern finden Sie unter UI Automation Control Patterns Overview.
Hinweis
Es gibt keine 1:1-Entsprechung zwischen Steuerelementtypen und Steuerelementmustern. Ein Steuerelementmuster kann von mehreren Steuerelementtypen unterstützt werden, und ein Steuerelement kann mehrere Steuerelementmuster unterstützen, von denen jedes einen anderen Aspekt des Verhaltens verfügbar macht. Ein Kombinationsfeld hat beispielsweise mindestens zwei Steuerelementmuster: eines mit der Fähigkeit zum Erweitern und Reduzieren und ein anderes, das den Auswahlmechanismus darstellt. Ein Steuerelement kann jedoch nur einen einzelnen Steuerelementtyp aufweisen.
Benutzeroberflächenautomatisierung stellt Informationen für Clientanwendungen über Ereignisse bereit. Im Gegensatz zu WinEvents basieren Ereignisse der Benutzeroberflächenautomatisierung nicht auf einem Übertragungsmechanismus. Benutzeroberflächenautomatisierungsclients registrieren sich für bestimmte Ereignisbenachrichtigungen und können anfordern, dass bestimmte Eigenschaften und Steuerelementmusterinformationen an ihre Ereignishandler übergeben werden. Außerdem enthält ein Ereignis der Benutzeroberflächenautomatisierung einen Verweis auf das Element, das es ausgelöst hat. Anbieter können die Leistung verbessern, indem sie Ereignisse selektiv abhängig davon auslösen, ob Clients zuhören. Weitere Informationen zu Ereignissen finden Sie unter UI Automation Events Overview.