Partager via


Objet Commands Collection

[Microsoft Agent est déconseillé à partir de Windows 7 et peut ne pas être disponible dans les versions ultérieures de Windows.]

Le serveur Microsoft Agent gère une liste de commandes actuellement disponibles pour l’utilisateur. Cette liste inclut les commandes que le serveur définit pour l’interaction générale (par exemple, Masquer et Ouvrir la fenêtre commandes vocales), la liste des clients disponibles (mais non actifs en entrée) et les commandes définies par le client actif actuel. Les deux premiers ensembles de commandes sont des commandes globales ; autrement dit, ils sont disponibles à tout moment, quel que soit le client d’entrée actif. Les commandes définies par le client sont disponibles uniquement lorsque ce client est actif en entrée et que le caractère est visible.

Chaque application cliente peut définir une collection de commandes appelée collection Commands . Pour ajouter une commande à la collection, utilisez la méthode Add ou Insert . Bien que vous puissiez spécifier les propriétés d’une commande avec des instructions distinctes, pour des performances de code optimales, spécifiez toutes les propriétés d’une commande dans l’instruction de méthode Add ou Insert . Pour chaque commande de la collection, vous pouvez déterminer si l’accès utilisateur à la commande s’affiche dans le menu contextuel du caractère, dans la fenêtre Commandes vocales, dans les deux ou dans aucun des deux. Par exemple, si vous souhaitez qu’une commande apparaisse dans le menu contextuel du caractère, définissez les propriétés Légende et Visible de la commande. Pour afficher la commande dans la fenêtre Commandes vocales, définissez les propriétés VoiceCaption et Voice de la commande.

Un utilisateur peut accéder aux commandes comm individuelles et auxcommandesde votre collection uniquement lorsque votre application cliente est active en entrée. Par conséquent, lorsque vous partagez le caractère avec d’autres applications clientes, vous devez généralement définir les propriétés Caption, VoiceCaption et Voice pour l’objet de collection Commands ainsi que pour les commandes de la collection. Cela place une entrée pour votre collection Commands dans le menu contextuel d’un caractère et dans la fenêtre Commandes vocales.

Lorsque l’utilisateur bascule vers votre client en choisissant son entrée Commandes , le serveur rend automatiquement votre entrée client active, en informant votre application cliente à l’aide de l’événement ActivateInput et rend les commandes de sa collection disponibles. Le serveur avertit également le client qu’il n’est plus actif en entrée avec l’événement DeActivateInput . Cela permet au serveur de présenter et d’accepter uniquement les commandes qui s’appliquent au contexte du client actif d’entrée. Il permet également d’éviter les collisions de nom de commande entre les clients.

Un client peut également demander explicitement de se faire le client actif d’entrée à l’aide de la méthode Activate . Cette méthode prend également en charge la définition de votre application pour qu’elle ne soit pas le client actif d’entrée. Vous pouvez utiliser cette méthode lorsque vous partagez un caractère avec une autre application, en définissant votre application sur input-active lorsque votre fenêtre d’application obtient le focus et non sur input-active quand elle perd le focus.

De même, vous pouvez utiliser la méthode Activate pour définir votre application comme étant (ou non) le client actif du caractère. Le client actif est le client qui reçoit l’entrée lorsque son caractère est le caractère le plus élevé. Lorsque cette status change, le serveur avertit votre application avec l’événement ActiveClientChange.

Lorsque le menu contextuel d’un caractère s’affiche, les modifications apportées aux propriétés d’une collection Commands ou aux commandes de sa collection n’apparaissent pas tant que l’utilisateur n’a pas réafficher le menu. Toutefois, la fenêtre Commandes affiche les modifications à mesure qu’elles se produisent.