Partager via


Implémentation de fournisseur UI Automation côté client

Remarque

Cette documentation est destinée 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 informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation.

Plusieurs frameworks d’interface utilisateur (UI) différents sont utilisés dans les systèmes d’exploitation Microsoft, notamment Win32, Windows Forms et Windows Presentation Foundation (WPF). Microsoft UI Automation expose des informations sur les éléments d’interface utilisateur aux clients. Toutefois, UI Automation n’a pas lui-même conscience des différents types de contrôles qui existent dans ces frameworks et les techniques nécessaires pour extraire des informations à partir de ces infrastructures. Au lieu de cela, elle laisse cette tâche aux objets appelés fournisseurs. Un fournisseur extrait des informations d’un contrôle spécifique et les transmet à UI Automation, qui les présente ensuite au client de manière cohérente.

Les fournisseurs peuvent exister côté serveur ou côté client. Un fournisseur côté serveur est implémenté par le contrôle lui-même. Les éléments WPF implémentent des fournisseurs, comme peuvent le faire n'importe quels contrôles tiers conçus en tenant compte de l'automatisation de l'interface utilisateur.

Toutefois, les contrôles plus anciens tels que ceux dans Win32 et Windows Forms ne prennent pas directement en charge UI Automation. Ces contrôles sont plutôt servis par des fournisseurs qui existent dans le processus client et obtiennent des informations sur les contrôles à l’aide de la communication interprocessus ; par exemple, en surveillant les messages Windows vers et depuis les contrôles. Ces fournisseurs côté client sont parfois appelés proxys.

Windows Vista fournit des fournisseurs pour les contrôles Win32 et Windows Forms standard. En outre, un fournisseur de secours offre une prise en charge partielle de UI Automation à tout contrôle qui n’est pas desservi par un autre fournisseur côté serveur ou proxy, mais qui dispose d'une implémentation de Microsoft Active Accessibility. Tous ces fournisseurs sont automatiquement chargés et disponibles pour les applications clientes.

Pour plus d’informations sur la prise en charge des contrôles Win32 et Windows Forms, consultez prise en charge d’UI Automation pour les contrôles standard.

Les applications peuvent également inscrire d’autres fournisseurs côté client.

Distribution des fournisseurs côté client

UI Automation s’attend à trouver des fournisseurs côté client dans un assembly de code managé. L’espace de noms de cet assembly doit avoir le même nom que l’assembly. Par exemple, un assembly appelé ContosoProxies.dll contient l’espace de noms ContosoProxies. Dans l’espace de noms, créez une UIAutomationClientSideProviders classe. Dans l’implémentation du champ statique ClientSideProviderDescriptionTable , créez un tableau de ClientSideProviderDescription structures décrivant les fournisseurs.

Enregistrement et configuration des fournisseurs Client-Side

Les fournisseurs côté client dans une bibliothèque de liens dynamiques (DLL) sont chargés en appelant RegisterClientSideProviderAssembly. Aucune autre action n’est requise par une application cliente pour utiliser les fournisseurs.

Les fournisseurs qui sont implémentés dans le propre code du client sont inscrits à l'aide de RegisterClientSideProviders. Cette méthode prend comme argument un tableau de ClientSideProviderDescription structures, chacun d’entre eux spécifiant les propriétés suivantes :

  • une fonction de rappel qui crée l’objet fournisseur ;

  • Nom de classe des contrôles que le fournisseur servira.

  • le nom d’image de l’application (généralement le nom complet du fichier exécutable) que le fournisseur doit traiter ;

  • Indicateurs qui régissent la mise en correspondance du nom de classe par rapport aux classes de fenêtre trouvées dans l’application cible.

Les deux derniers paramètres sont facultatifs. Le client peut spécifier le nom de l’image de l’application cible quand il souhaite utiliser différents fournisseurs pour différentes applications. Par exemple, le client peut utiliser un fournisseur pour un contrôle d’affichage de liste Win32 dans une application connue qui prend en charge le modèle Affichage multiple, et un autre pour un contrôle similaire dans une autre application connue qui ne le fait pas.

Voir aussi