O objeto da coleção Commands

[O Microsoft Agent foi preterido a partir do Windows 7 e pode estar indisponível nas versões subsequentes do Windows.]

O servidor do Microsoft Agent mantém uma lista de comandos que estão disponíveis no momento para o usuário. Essa lista inclui comandos que o servidor define para interação geral (como Ocultar e Abrir a Janela Comandos de Voz), a lista de clientes disponíveis (mas não ativos de entrada) e os comandos definidos pelo cliente ativo atual. Os dois primeiros conjuntos de comandos são comandos globais; ou seja, eles estão disponíveis a qualquer momento, independentemente do cliente ativo de entrada. Os comandos definidos pelo cliente só estão disponíveis quando esse cliente está ativo na entrada e o caractere está visível.

Cada aplicativo cliente pode definir uma coleção de comandos chamada coleção Commands . Para adicionar um comando à coleção, use o método Add ou Insert . Embora você possa especificar as propriedades de um comando com instruções separadas, para o melhor desempenho de código, especifique todas as propriedades de um comando na instrução Adicionar ou Inserir método. Para cada comando na coleção, você pode determinar se o acesso do usuário ao comando aparece no menu pop-up do caractere, na Janela Comandos de Voz, em ambos ou em nenhum dos dois. Por exemplo, se você quiser que um comando apareça no menu pop-up do caractere, defina as propriedades Caption e Visible do comando. Para exibir o comando na Janela Comandos de Voz, defina as propriedades VoiceCaption e Voice do comando.

Um usuário pode acessar oscomandosde comunicação individuais e em sua coleção somente quando o aplicativo cliente estiver ativo na entrada. Portanto, quando você pode estar compartilhando o caractere com outros aplicativos cliente, normalmente deseja definir as propriedades Caption, VoiceCaption e Voice para o objeto de coleção Commands , bem como para os comandos na coleção. Isso coloca uma entrada para sua coleção Commands no menu pop-up de um caractere e na janela Comandos de Voz.

Quando o usuário alterna para seu cliente escolhendo sua entrada Comandos , o servidor torna automaticamente a entrada do cliente ativa, notificando seu aplicativo cliente usando o evento ActivateInput e disponibiliza os comandos em sua coleção. O servidor também notifica o cliente de que ele não está mais ativo na entrada com o evento DeActivateInput . Isso permite que o servidor apresente e aceite apenas os comandos que se aplicam ao contexto do cliente ativo de entrada atual. Ele também serve para evitar colisões de nome de comando entre clientes.

Um cliente também pode solicitar explicitamente para se tornar o cliente ativo de entrada usando o método Activate . Esse método também dá suporte à configuração do aplicativo para não ser o cliente ativo de entrada. Talvez você queira usar esse método quando estiver compartilhando um caractere com outro aplicativo, definindo seu aplicativo como ativo de entrada quando a janela do aplicativo ficar em foco e não ativar a entrada quando ele perder o foco.

Da mesma forma, você pode usar o método Activate para definir seu aplicativo como (ou não ser) o cliente ativo do caractere. O cliente ativo é o cliente que recebe entrada quando seu caractere é o caractere mais alto. Quando esse status é alterado, o servidor notifica seu aplicativo com o evento ActiveClientChange.

Quando o menu pop-up de um caractere é exibido, as alterações nas propriedades de uma coleção Commands ou nos comandos em sua coleção não aparecem até que o usuário reproduz o menu. No entanto, a Janela de Comandos exibe alterações conforme elas acontecem.