Senhoras e Senhores , com vocês os atores Microsoft ... - Genie e Merlin...


O que vocês acharam do título ? Bem se você estiver visitando minha página pela primeira vez poderá pensar que errou o click , mas não , você veio ao lugar certo; hoje estaremos mostrando como usar os atores ou agentes ou assistentes da Microsoft no seu programa Visual Basic . Isso mesmo ! vamos mostrar como programar os agentes para realizar algumas tarefas . (Já sei, pela sua mente deve estar passando as possibilidades de uso deste recurso: helps, jogos, assistentes, etc...). Bem o caminho é por ai mesmo , dar asas a imaginação e a criatividade e por a mão na massa.

Você só vai precisar deste pequeno empurrãozinho , a partir de agora , após a leitura deste artigo você não será o mesmo ...

Para usar este recurso no seu programa Visual Basic você vai precisar do seguinte:

  1. Ter instalado as DLLs do Microsoft Agent , um arquivo de 395 Kb (compactado) que voce pode 'baixar' do site da microsoft (www.microsoft.com/msagent ).
  2. O agentes Merlin (1.6 KB) e Genie ( 1.8 KB) que voce 'baixa' do mesmo endereço acima. (Você pode baixar outros agentes)

Após você ter os componentes acima instalados em seu ambiente você já pode começar a pensar em trabalhar com eles. Vamos então mostrar como é fácil programar os agentes no Visual Basic. Vamos lá...

O projeto : Atores em ação.

Nosso projeto irá usar somente um formulário , uma caixa de texto , seis botões de comando, um controle label, e o componente Microsoft Agent Control 2.0. - Fig 1.0

Fig 1.0 - O projeto Atores

Inicie um novo projeto no Visual Basic e carregue na caixa de ferramentas o componente Microsoft Agent Control 2.0. Para fazer isto clique em Projects -> Components... e selecione o componente indicado. Fig 2.0 e a seguir faça uma referencia do controle na opção Project->References... selecione a Microsoft Agent Control 2.0 - Fig 3.0

Fig 2.0 - O Microsoft Agent Control 2.0 e a barra de ferramentas Fig 3.0 - Referenciado o MS Agent Control 2.0

Salve o seu projeto , eu dei ao projeto o nome de atores e ao formulário o nome de frmatores.

Monte o formulário como indicado na figura 1.0 , deixando todos os controles com o seu nome padrão, e pronto , agora só falta o código... Mas antes vamos ver o projeto funcionando...

Fig 4.0 - Genie dando as saudações...
Fig 5.0 - Genie fazendo mágica e Merlin bocejando...

Cada ação feita pelo Genio é programa usando as propriedades dos atores. No projeto não usamos todos os recursos possíveis apenas mostramos o caminho das pedras...

Fig 6.0 - Merlin se preparando para a despedida
Option Explicit
Dim Genie As IAgentCtlCharacterEx 'inicializa o ator
Const DataAtor = "genie.acs" 'define o caminho para o agente que voce vai usar
Const dataAtor2 = "merlin.acs" 'define o caminho para o agente que voce vai usar
Dim Merlin As IAgentCtlCharacter
Private Sub command4_Click()'Botão fazer mágica
  'o ator agora faz as magicas
  Genie.Play ("DoMagic1")
  Genie.Play ("DoMagic2")
End Sub
Private Sub command2_Click()'Botão gesticular
 Genie.Play ("GestureRight")  'aciona os gestos do ator
 Genie.Play ("GestureLeft")
 Genie.Play ("GestureUp")
 Genie.Play ("GestureDown")
 Genie.Play ("LookRight")
 Genie.Play ("LookLeft")
 Genie.Play ("LookUp")
 Genie.Play ("LookDown")
End Sub
Private Sub command3_Click() 'Botão Movimentar
 Genie.MoveTo 100, 10 'move o ator para direita
 Genie.MoveTo 500, 50 'move o ator um pouco mais
 Genie.MoveTo 600, 20 'continua a mover o ator
 Genie.MoveTo 10, 10   'move o ator a sua posicao inicial
End Sub
Private Sub command1_Click() 'Botão Falar
    If Text1 = "" Then Text1 = "Digite algo na caixa de texto para que eu possa falar..."
    Genie.Speak Text1
End Sub
Private Sub Command6_Click() 'Botão Sair
    Dim fala As String
    Agent1.Characters.Load "Merlin", dataAtor2 'carrega o ator
    Set Merlin = Agent1.Characters("Merlin") 'define o ator que vai atuar
    Merlin.LanguageID = &H409 'define a linguagem
    Merlin.MoveTo 500, 240
    Merlin.Show   'faz o ator aparecer
    Merlin.Play ("Greet") 'ator atua dando saudacoes
    fala = "Bem , então por hoje é só \pau=400\ "
    fala = fala & "hasta la vista baby ... e não se esqueça visite \pau=400\"
    fala = fala & "\emp\geocities.com/SiliconValley/Bay/3994 " 'mensagem saida
    Merlin.Speak fala 'aqui o ator 'fala' mensagem de saida
    Merlin.Play "wave" 'o ator da tchau
    Genie.Play "wave"
    Merlin.Hide
    Genie.Hide
    MsgBox "Adeus , Merlin ... Adeus Genie...!", vbOKOnly, "Companhia de teatro - MS"
    Set Merlin = Nothing
    Set Genie = Nothing
    Unload Me
End Sub
Private Sub Command5_Click()'Botão Limpar Texto
  Text1.Text = ""
End Sub

Private Sub Form_Load()
    Dim fala As String
    Agent1.Characters.Load "Genie", DataAtor 'carrega o ator
    Set Genie = Agent1.Characters("Genie") 'define o ator que vai atuar
    Genie.LanguageID = &H409 'define a linguagem
    Genie.MoveTo 100, 240
    Genie.Show   'faz o ator aparecer
    Genie.Play ("Greet") 'ator atua dando saudacoes
    fala = "\pit=400\Benvindo , Eu fui programado para ser seu escravo,\pau=400\ "
    fala = fala & "visite o site do meu criador em \pau=400\"
    fala = fala & "\emp\geocities.com/SiliconValley/Bay/3994 " 'mensagem de boas vindas
    Genie.Speak fala 'aqui o ator 'fala' as mensagens boas de vindas
End Sub

'Modificadores do discurso :
'   1.  \emp\       enfatiza a palavra
'   2.  \pau = m\   pause de m milisegundos
'   3.  \pit = p\    voz para p Hertz (1 - 400)
'   4.  \spd = s\  define a velocidade para s palavras por minuto

Obs : No Super CD VB voce encontra este codigo completo , alguns atores , e todos os arquivos que permitem dar vida aos atores - Inclusive falar !!! . É isto mesmo, eles falam ( com sotaque é claro...)

Uma palavra final - não abuse deste recurso - os atores ocupam um espaço razoável e tudo que é demais enjoa.

Só isto , e , acho que com os comentários no código eu não preciso dizer mais nada...Então... faça o download do projeto clicando no link...

atores.zip (4 KB)

(de lambuja voce pode baixar um exemplo disponibilizado pela Microsoft clicando aqui: Microsoft agents.)

E até logo...