Agente en VB.net
[MSAgent]

Fecha: 21/Jul/2004 (19/07/2004
Autor: Adrian S. Ponce  e-mail [email protected]


Bienvenidos

Pase y vea

Durante un larga tiempo e utilizado Agent para mi sistemas y aplicaciones, a mi criterio es una herramienta muy �til para interactuar con el usuario es por eso que e decidido escribir este articulo y podamos conocer un poco mas acerca de esta tecnolog�a.

�Que son los Microsoft Agent?

Ms Agent: Es un software de Interacci�n con el usuario  que facilita muchas tareas, es una forma bastante amigable de interactuar por ejemplo cuando en nuestros sistemas le indicamos al usuario que debe llenar cierto campo o checkbox ,ect.                                                         

En s�ntesis los MSAGENT es simplemente inteligencia artificial                                                                                                                                                                                                                       

Para m�s informaci�n sobre MSAGENT: http://www.microsoft.com/msagent/default.asp

Para m�s informaci�n sobre inteligencia artificial: http://www.microsoft.com/spanish/MSDN/estudiantes/ia/intro/default.asp

Resumen

Lo que veremos a continuaci�n ser� como se utiliza el Agnet, intent�ramos mostrar como llamar a todos sus gestos utilizando un listbox, hacer que diga lo que nosotros queramos a trav�s de un textbox, posesionar el agent utilizando coordenadas de X,Y con dos textbox y por ultimo cambiaremos el globo con un button.

NOTA: (Recodemos que el mismo  es un Componente COM). Aunque los COM tienen ciertas limitaciones con respecto a .Net, son lo suficientemente vers�til como para convertirse en la infraestructura de numerosas aplicaciones.

 

Dedos al teclado

Lo primero que aremos ser� crear un nuevo proyecto al que llamaremos agente

Una vez que tenemos nuestro form creado insertaremos el componente COM (Microsoft Agent control 2.0)

Este se posesionara en el toolbox de nuestra Workspace

A continuaci�n insertaremos este componente sobre el form y despu�s una serie de controles, tres Button, tres textbox, un Listbox y cuatro GroupBox para dar un aspecto m�s amigable a la Interfase

 


C�digo explicito:

Para comenzar insertaremos la variable del componente Axagnet.dll (MSANGET) y debajo la variable que nos permitir� mostrar todos la animaciones dentro del listbox

A continuaci�n sigue c�digo en Visual Basic.net

Dim merlin As AgentObjects.IAgentCtlCharacterEx 'variable para llamar al agent

Dim AnimationName As Object 'variable para llamar a las animaciones (gestos) del Agent

En el sucedo Load llamaremos al agente que en este caso ser� merl�n pero podremos utilizar cual quisi�ramos como genio o cualquier otro que este instalado en nuestro equipo. Seleccionaremos su motor de voz ("recordemos que los agentes no tienen motor de voz incorporado una debe seleccionar el que desea") en este caso seleccionaremos el motor de voz espa�ol ("&HC0AS"),una vez que obtenemos todo eso ahora llenaremos el listbox con todos las animaciones del mismo esto la permitir� ver todos sus gestos.

Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

        Agent.Characters.Load("merlin", "merlin.acs") 'se llama a merlin

        merlin = Agent.Characters("merlin") 'se selecona a merlin

        merlin.LanguageID = &HC0AS 'motor de lenguaje

        merlin.Show() 'se inicia Merlin

        merlin.Speak(Me.Text) 'Habla

        AnimationListBox.Items.Clear() 'Borramos el contenido de list

        For Each AnimationName In merlin.AnimationNames 'Cargamos todas la animaciones

            AnimationListBox.Items.Add(AnimationName) 'Agregamos los Items

        Next AnimationName 'Finalizamos con un next

    End Sub 

Sobre el Button1 insert�ramos el siguiente c�digo que nos permite que Merl�n lea o diga lo que esta escrito en el textbox

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

merlin.Speak(TextBox.Text) 'Leer el texbox

End Sub

Sobre el Button2 cambiaremos la forma del globo de dialogo

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

merlin.Think("Comida") 'Cambio de Globo

End Sub

Sobre el Button3 utilizando los textbox�s  CharPosn1 y CharPosn2 ingresaremos las coordenadas que queramos Ej. X 200 Y 100

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        merlin.MoveTo(CShort(CharPosn1.Text), CShort(CharPosn2.Text)) 'Posicion del agnente

    End Sub 

Finalmente sobre el listbox �Animationlistbox� al hacer clic sobre aluna de sus animaciones merl�n la ejecutara

Private Sub AnimationListBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnimationListBox.SelectedIndexChanged

        merlin.Play(AnimationListBox.Items(AnimationListBox.SelectedIndex)) 'selecci�n de la animaci�n

  End Sub

C�digo completo

Dim merlin As AgentObjects.IAgentCtlCharacterEx 'variable para llamar al agent

    Dim AnimationName As Object �Variable de animacion

    Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

        Agent.Characters.Load("merlin", "merlin.acs") 'se llama a merlin

        merlin = Agent.Characters("merlin") 'se selecona a merlin

        merlin.LanguageID = &HC0AS 'motor de lenguaje

        merlin.Show() 'se inicia Merlin

        merlin.Speak(Me.Text) 'Habla

        AnimationListBox.Items.Clear() 'Borramos el contenido de list

        For Each AnimationName In merlin.AnimationNames 'Cargamos todas la animaciones

            AnimationListBox.Items.Add(AnimationName) 'Agregamos los Items

        Next AnimationName 'Finalizamos con un next

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        merlin.Think("Comida")

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        merlin.Speak(TextBox.Text) 'El Agnte (merlin) Lee el contenido del textbox

    End Sub

 

    Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked

        Dim NewProcess As Process = New Process

        NewProcess.Start("http://www.nnet.ar.gs")

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        merlin.MoveTo(CShort(CharPosn1.Text), CShort(CharPosn2.Text)) 'Posicion del agnente

    End Sub

Private Sub AnimationListBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnimationListBox.SelectedIndexChanged

        merlin.Play(AnimationListBox.Items(AnimationListBox.SelectedIndex)) 'seleccion del agent

    End Sub

 


Requisitos

Microsoft Agent character Merl�n http://www.microsoft.com/msagent/downloads/user.asp

Motor de voz http://www.microsoft.com/msagent/downloads/user.asp

Para Windows XP http://activex.microsoft.com/activex/controls/sapi/spchapi.exe

Otras Fuentes acerca de .NET

http://www.nnet.ar.gs

 

Fichero con el c�digo de ejemplo: adrianponce_Agentvbnet.zip - Tama�o 46KB


Adrian S. Ponce ([email protected]), Neuqu�n Capital, Argentina, es Programador. Desarrolla aplicaciones en VB 6, VB.net, C#.Net, ASP.NET, Aplicaciones m�viles Trabaja en, Municipalidad de Neuqu�n en donde se encarga de crear sistemas y aplicaciones de ofim�tica abocadas a mejorar el rendimiento y facilitar el trabajo diario.


ir al índice