Compartilhar via


IAgentCommands

[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 Propriedades do Microsoft Agent, 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.

Recupere uma interface IAgentCommands consultando a interfaceIAgentCharacterpara IAgentCommands. Cada aplicativo cliente do Microsoft Agent pode definir uma coleção de comandos chamados commands coleção. Para adicionar um comando à coleção, use o método Adicionar ou Inserir. Embora você possa especificar as propriedades de de um comando de usando métodosIAgentCommand, para obter um desempenho de código ideal, especifique todas as propriedades de um Commandno IAgentCommands::Add ou IAgentCommands::Insert methods when initially setting the properties for a new Command. Você pode usar os métodos IAgentCommand para consultar ou alterar as configurações de propriedade.

Para cada command na coleção Commands, você pode determinar se o 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 propriedadesde Legendado comando e Propriedades de Visíveis. Para exibir o comando no da janela comandos de voz, defina as propriedades de Legenda do comando e voice.

Um usuário pode acessar os comandos individuais em sua coleção commands somente quando o aplicativo cliente estiver ativo na entrada e o caractere estiver visível. Portanto, normalmente, você desejará definir as propriedades Caption, VoiceCaptione Voice para o objeto de coleçãocommands, bem como para os comandos da coleção, pois isso coloca uma entrada para o conjunto de comandos no menu pop-up de um caractere e na janela Comandos de Voz. Quando o usuário alterna para seu cliente escolhendo seus comandos entrada, o servidor automaticamente torna o cliente ativo de entrada, notificando seu aplicativo cliente usando o IAgentNotifySink::ActivateInputState e disponibiliza os comandos em sua coleção. O servidor também notifica o cliente que não está mais ativo em entrada com o evento IAgentNotifySink::ActivateInputState. Isso permite que o servidor apresente e aceite apenas os comandos que se aplicam ao contexto atual do cliente ativo de entrada. Ele também serve para evitar command-name colisões entre clientes.

Um cliente também pode solicitar explicitamente para se tornar o cliente ativo de entrada usando o método IAgentCharacter::Activate. Esse método também dá suporte à configuração de seu aplicativo para não ser o cliente ativo de entrada. Talvez você queira usar esse método ao compartilhar 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 IAgentCharacter::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 IAgentNotifySinkEx::ActiveClientChange.

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

IAgentCommands define uma interface que permite aos aplicativos adicionar, remover, definir e consultar propriedades para uma coleção de comandos . Essas funções também estão disponíveis no IAgentCommandsEx.

Uma coleção de comandos pode aparecer como um comando no menu pop-up e na janela Comandos de Voz para um caractere. Para que a coleção comandos apareça, defina sua propriedade Caption. A tabela a seguir resume como as propriedades de uma coleção de comandos afetam sua apresentação.

Propriedade Caption Propriedade Voice-Caption Propriedade Voice Propriedade Visible Aparece no menu pop-up do caractere Aparece na janela Comandos de Voz
Sim Sim Sim Verdadeiro Sim, usandode legenda Sim, usandoVoiceCaption
Sim Sim Não¹ Verdadeiro Sim, usandode legenda Não
Sim Sim Sim Falso Não Sim, usandoVoiceCaption
Sim Sim Não¹ Falso Não Não
Não¹ Sim Sim Verdadeiro Não Sim, usandoVoiceCaption
Não¹ Sim Sim Falso Não Sim, usandoVoiceCaption
Não¹ Sim Não¹ Verdadeiro Não Não
Não¹ Sim Não¹ Falso Não Não
Sim Não¹ Sim Verdadeiro Sim, usandode legenda Sim, usandode legenda
Sim Não¹ Não¹ Verdadeiro Sim Não
Sim Não¹ Sim Falso Não Sim, usandode legenda
Sim Não¹ Não¹ Falso Não Não
Não¹ Não¹ Sim Verdadeiro Não No²
Não¹ Não¹ Sim Falso Não No²
Não¹ Não¹ Não¹ Verdadeiro Não Não
Não¹ Não¹ Não¹ Falso Não Não

 

¹Se a configuração da propriedade for nula. Em algumas linguagens de programação, uma cadeia de caracteres vazia pode não ser interpretada da mesma forma que uma cadeia de caracteres nula.

²O comando ainda é acessível por voz.

Métodos de no de Ordem Vtable

Métodos IAgentCommands Descrição
GetCommand Recupera um objeto Command da coleçãocommands do.
GetCount Retorna o valor do número de comandos em uma coleção de comandos .
SetCaption Define o valor da propriedade Caption para uma coleção de comandos .
GetCaption Retorna o valor da propriedadede legenda dede uma coleçãode comandos de.
SetVoice Define o valor da propriedade Voice para uma coleção de comandos .
getvoice Retorna o valor da propriedade Voice de uma coleção de comandos .
SetVisible Define o valor da propriedade Visible para uma coleção de comandosde.
GetVisible Retorna o valor da propriedade Visible de uma coleção de comandos .
Adicionar Adiciona um objeto Command a uma coleção de comandos .
Inserir Insere um objeto Command em uma coleçãocommands.
Remover Remove um objetode Comandoem uma coleção de comandosde.
RemoveAll Remove todos os objetos Command de uma coleção de comandos .