Vue d'ensemble des fournisseurs UI Automation

Notes

Cette documentation s’adresse aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.

Les fournisseurs UI Automation permettent aux contrôles de communiquer avec les applications clientes UI Automation. En général, chaque contrôle ou autre élément distinct d’une interface utilisateur est représenté par un fournisseur. Le fournisseur expose des informations sur l’élément et peut implémenter des modèles de contrôle pour permettre à l’application cliente d’interagir avec le contrôle.

Les applications clientes n’ont généralement pas besoin de travailler directement avec des fournisseurs. La plupart des contrôles standard dans les applications qui utilisent les frameworks Win32, Windows Forms ou Windows Presentation Foundation (WPF) sont automatiquement exposés au système UI Automation. Les applications qui implémentent des contrôles personnalisés peuvent également implémenter des fournisseurs UI Automation pour ces contrôles, et les applications clientes n’ont pas à utiliser de procédures spéciales pour y accéder.

Cette rubrique fournit une vue d’ensemble de la manière dont les développeurs de contrôles implémentent des fournisseurs UI Automation, en particulier pour les contrôles des fenêtres Windows Forms et Win32.

Types de fournisseurs

Les fournisseurs UI Automation sont divisés en deux catégories : les fournisseurs côté client et les fournisseurs côté serveur.

Fournisseurs côté client

Les fournisseurs côté client sont implémentés par les clients UI Automation pour communiquer avec une application qui ne prend pas en charge, ou ne prend pas entièrement en charge, UI Automation. Habituellement, les fournisseurs côté client communiquent avec le serveur à travers la limite de processus en envoyant et en recevant des messages Windows.

Comme les fournisseurs UI Automation pour les contrôles des applications Win32, Windows Forms ou WPF sont fournis dans le cadre du système d’exploitation, les applications clientes ont rarement besoin d’implémenter leurs propres fournisseurs. C’est la raison pour laquelle cette présentation n’approfondit pas le sujet.

Fournisseurs côté serveur

Les fournisseurs côté serveur sont implémentés par des contrôles personnalisés ou par des applications qui reposent sur un framework d’interface utilisateur autre que Win32, Windows Forms ou WPF.

Les fournisseurs côté serveur communiquent avec les applications clientes à travers la limite de processus en exposant des interfaces au système de base UI Automation qui, à son tour, prend en charge les demandes des clients.

Concepts de fournisseur UI Automation

Cette section fournit de brèves explications sur certains concepts clés que vous devez comprendre pour pouvoir implémenter des fournisseurs UI Automation.

Éléments

Les éléments UI Automation sont des éléments de l’interface utilisateur visibles par les clients UI Automation. Les fenêtres d’application, les volets, les boutons, les info-bulles, les zones de liste et les éléments de liste en sont des exemples.

Les éléments UI Automation sont exposés aux clients sous la forme d’une arborescence UI Automation. UI Automation construit l’arborescence en naviguant d’un élément à l’autre. La navigation est activée par les fournisseurs pour chaque élément, chacun pouvant pointer vers un parent, des frères ou des enfants.

Pour plus d’informations sur l’affichage client de l’arborescence UI Automation, consultez Vue d’ensemble de l’arborescence UI Automation.

Les vues

Un client peut consulter l’arborescence UI Automation dans trois affichages principaux, comme indiqué dans le tableau suivant.

Affichage Description
Affichage brut Contient tous les éléments.
Vue de contrôle Contient les éléments qui sont des contrôles.
Vue de contenu Contient les éléments disposant d’un contenu.

Pour plus d’informations sur les affichages clients de l’arborescence UI Automation, consultez Vue d’ensemble de l’arborescence UI Automation.

Il incombe à l’implémentation du fournisseur de définir un élément comme élément de contenu ou élément de contrôle. Les éléments de contrôle peuvent être ou non également des éléments de contenu, mais tous les éléments de contenu sont des éléments de contrôle.

Frameworks

Une infrastructure est un composant qui gère les contrôles enfants, les tests de positionnement et le rendu dans une zone de l’écran. Par exemple, une fenêtre Win32, souvent appelée HWND, peut servir de framework contenant plusieurs éléments UI Automation, tels qu’une barre de menus, une barre d’état et des boutons.

Les contrôles conteneurs Win32, tels que les zones de liste et les arborescences, sont considérés comme des frameworks, car ils contiennent leur propre code pour restituer des éléments enfants et effectuer un test de résultats sur ces derniers. En revanche, une zone de liste WPF n’est pas un framework, car le rendu et le test de résultats sont gérés par la fenêtre WPF contenante.

L’interface utilisateur d’une application peut être composée de différents frameworks. Par exemple, une fenêtre d’application HWND peut contenir du code HTML dynamique (DHTML) contenant à son tour un composant tel qu’une zone de liste déroulante dans un HWND.

Fragments

Un fragment est une sous-arborescence complète d’éléments issus d’une infrastructure particulière. L’élément au niveau du nœud racine de la sous-arborescence est appelé racine de fragment. Une racine de fragment n’a pas de parent, mais elle est hébergée au sein d’un autre framework, habituellement une fenêtre Win32 (HWND).

Hôtes

Le nœud racine de chaque fragment doit être hébergé dans un élément, généralement une fenêtre Win32 (HWND). Le bureau est une exception et il n’est hébergé dans aucun autre élément. L’hôte d’un contrôle personnalisé est le HWND du contrôle lui-même, et non pas la fenêtre d’application ni aucune autre fenêtre susceptible de contenir des groupes de contrôles de niveau supérieur.

L’hôte d’un fragment joue un rôle important dans l’offre des services UI Automation. Il permet la navigation vers la racine de fragment et fournit des propriétés par défaut afin que le fournisseur personnalisé n’ait pas à les implémenter.

Voir aussi