VB .NET- Usando os Agentes Microsoft - revisitado


Hoje eu estou escrevendo este artigo por que recebi um email solicitando que mostrasse como usar os agentes Microsoft no Windows 7.

Então vamos lá...

Veja o meu artigo sobre o assunto usando o Visual Basic 6: Usando os Agents da Microsoft no Visual Basic

E neste artigo eu mostro como usar o recurso usando VB .NET : VB.NET -Usando os agentes Microsoft

Instalando os recursos

Para poder usar os agentes em sua aplicação VB .NET você vai precisar instalar os seguintes recursos:

1- Microsoft Agent Core Components version 2.0 (395K) - biblioteca principal para poder usar os agentes

2 - Lernout & Hauspie TruVoice, Text-to-Speech Engine (English version)  (1MB) - permite que você ouça o que os agentes estão falando

Existem engines adicionais para outros idiomas conforme mostra a tabela abaixo:

Linguagem

TTS Engine
(2-3 MB)

Language Add-On
(128 KB)
American English tv_enua.exe já instalada
British English lhttseng.exe já instalada.
Dutch lhttsdun.exe agtx0413.exe
French lhttsfrf.exe agtx040C.exe
German lhttsged.exe agtx0407.exe
Italian lhttsiti.exe agtx0410.exe
Japanese lhttsjpj.exe agtx0411.exe
Korean lhttskok.exe agtx0412.exe
Portuguese (Brazilian) lhttsptb.exe agtx0416.exe
Russian lhttsrur.exe agtx0419.exe
Spanish lhttsspe.exe agtx0C0A.exe

Você deve instalar o TTS engine e o Add-on para a linguagem desejada.

Você pode baixar também alguns atores neste link: http://www.microsoft.com/products/msagent/main.aspx

Você pode baixar outros atores neste link: http://www.msagentring.org/chars.aspx (eu não testei nenhum desses atores)

Após instalar os recursos vamos criar um projeto VB .NET bem simples usando o Visual Basic 2010 Express Edition.

Usando os agentes microsofts

Abra o Visual Basic 2010 Express Edition e no menu File clique em New Project;

Selecione o template Windows Forms Application e informe o nome Agentes;

A seguir vamos incluir os seguintes controles no formulário form1.vb:

Disponha os controles conforme o leiaute da figura abaixo:

Agora vamos referenciar a biblioteca dos agentes em nosso projeto.

No menu Project clique Add Reference a seguir e selecione a aba COM e o componente Microsoft Agent Control 2.0 e clique em OK;

Declare as variáveis objetos para os atores no início do formulário form1.vb:

Private mobjController As AgentObjects.Agent
Private mobjCharacter As AgentObjects.IAgentCtlCharacter

Agora vamos definir o código do botão que carrega o agente com o qual vamos trabalhar. No evento Click do botão btnCarregarAgente inclua o código abaixo:

 Private Sub btnCarregaAgente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCarregaAgente.Click
        mobjController = New AgentObjects.Agent

        With mobjController
            .Connected = True
            '.Characters.Load("merlin", "merlin.acs")
            'mobjCharacter = .Characters("merlin")
            .Characters.Load("peedy", "peedy.acs")
            mobjCharacter = .Characters("peedy")
        End With

        With mobjCharacter
            .Show()
            .Top = 300
            .Left = 600
            .Width = 200
            .Height = 200
            .SoundEffectsOn = True
        End With

        btnFalar.Enabled = True
        btnListaAnimacoes.Enabled = True
        btnParar.Enabled = True
    End Sub

Estou usando o ator peedy (o papagaio) mas você pode usar qualquer ator que desejar.

Após carregar os agentes podemos listar as animações suportadas pelo mesmo no listbox - lstbAnimacoes. No evento Click do botão btnListaAnimacoes digite o código abaixo:

Private Sub btnListaAnimacoes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListaAnimacoes.Click
        Dim Animation As Object

        For Each Animation In mobjCharacter.AnimationNames
            lstbAnimacoes.Items.Add(Animation)
        Next
        btnExecuta.Enabled = True
    End Sub

A seguir no evento click do botão btnExecuta definimos o código a seguir que executa uma animação selecionada no listbox:

Private Sub btnExecuta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExecuta.Click
        If lstbAnimacoes.SelectedIndex <> -1 Then
            mobjCharacter.StopAll()
            mobjCharacter.Play(lstbAnimacoes.SelectedItem.ToString)
        Else
            MsgBox("Selecione uma animação para executar...")
        End If
    End Sub

No botão btnFalar temos o código que exibe o texto digitado na caixa de texto txtTexto bem como o som

Private Sub btnFalar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFalar.Click
        mobjCharacter.Speak(txtTexto.Text)
    End Sub

Para parar uma animação definimos o código abaixo no botão btnParar:

 Private Sub btnParar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnParar.Click
        objAtor.StopAll()
    End Sub

Executando o projeto iremos obter o seguinte resultado:

Assim acabamos de usar os agentes Microsoft em uma aplicação Visual Basic no Windows 7.

Pegue o projeto completo aqui: AgentesMicrosoft_VBNET.zip

João 6:51 Eu sou o pão vivo que desceu do céu; se alguém comer deste pão, viverá para sempre; e o pão que eu darei pela vida do mundo é a minha carne.

João 6:52 Disputavam, pois, os judeus entre si, dizendo: Como pode este dar-nos a sua carne a comer?

João 6:53 Disse-lhes Jesus: Em verdade, em verdade vos digo: Se não comerdes a carne do Filho do homem, e não beberdes o seu sangue, não tereis vida em vós mesmos.

João 6:54 Quem come a minha carne e bebe o meu sangue tem a vida eterna; e eu o ressuscitarei no último dia.

Referências:


José Carlos Macoratti