Compartir a través de


El objeto de colección Commands

[Microsoft Agent está en desuso a partir de Windows 7 y puede no estar disponible en versiones posteriores de Windows.

El servidor de Microsoft Agent mantiene una lista de comandos que están disponibles actualmente para el usuario. Esta lista incluye comandos que el servidor define para la interacción general (como Ocultar y abrir la ventana comandos de voz), la lista de clientes disponibles (pero no activos) y los comandos definidos por el cliente activo actual. Los dos primeros conjuntos de comandos son comandos globales; es decir, están disponibles en cualquier momento, independientemente del cliente de entrada-activo. Los comandos definidos por el cliente solo están disponibles cuando ese cliente está activo de entrada y el carácter está visible.

Cada aplicación cliente puede definir una colección de comandos denominada colección Commands . Para agregar un comando a la colección, use el método Add o Insert . Aunque puede especificar las propiedades de un comando con instrucciones independientes, para obtener un rendimiento óptimo del código, especifique todas las propiedades de un comando en la instrucción del método Add o Insert . Para cada comando de la colección, puede determinar si el acceso de usuario al comando aparece en el menú emergente del carácter, en la ventana Comandos de voz, en ambos o en ninguno de ellos. Por ejemplo, si desea que aparezca un comando en el menú emergente del carácter, establezca las propiedades Caption y Visible del comando. Para mostrar el comando en la ventana Comandos de voz, establezca las propiedades VoiceCaption y Voice del comando.

Un usuario puede acceder a loscomandosde comm individuales de la colección solo cuando la aplicación cliente está activa. Por lo tanto, cuando pueda compartir el carácter con otras aplicaciones cliente, normalmente querrá establecer las propiedades Caption, VoiceCaption y Voice para el objeto de colección Commands , así como para los comandos de la colección. Esto coloca una entrada para la colección Commands en el menú emergente de un carácter y en la ventana Comandos de voz.

Cuando el usuario cambia al cliente eligiendo su entrada Comandos , el servidor activa automáticamente la entrada del cliente, notificando a la aplicación cliente mediante el evento ActivateInput y hace que los comandos de su colección estén disponibles. El servidor también notifica al cliente que ya no está activo de entrada con el evento DeActivateInput . Esto permite que el servidor presente y acepte solo los comandos que se aplican al contexto del cliente activo de entrada actual. También sirve para evitar colisiones de nombres de comando entre clientes.

Un cliente también puede solicitar explícitamente que se convierta en el cliente de entrada-activo mediante el método Activate . Este método también admite la configuración de la aplicación para que no sea el cliente de entrada-activo. Es posible que quiera usar este método al compartir un carácter con otra aplicación, estableciendo la aplicación como de entrada activa cuando la ventana de la aplicación obtiene el foco y no la entrada activa cuando pierde el foco.

Del mismo modo, puede usar el método Activate para establecer que la aplicación sea (o no sea) el cliente activo del carácter. El cliente activo es el cliente que recibe la entrada cuando su carácter es el carácter más alto. Cuando cambia este estado, el servidor notifica a la aplicación el evento ActiveClientChange .

Cuando se muestra el menú emergente de un carácter, los cambios realizados en las propiedades de una colección Commands o los comandos de su colección no aparecen hasta que el usuario vuelva a mostrar el menú. Sin embargo, la ventana Comandos muestra los cambios a medida que se producen.