Hola de nuevo Aida

, elabore un pequeño ejemplo de como usar TMSAgent, ya lo probe y no da error.. checalo y me dices..
Code: Select all | Expand
#Include "FIVEWIN.CH"
#Include "TMSAGENT.CH"
STATIC oWndMain
//------------------//
FUNCTION Main()
LOCAL cFileAgent:= ""
LOCAL nAsis:= "1"
PUBLIC oAsis, Espera, Hablar
RegistrarOCX() // -> Aki va la rutina para registrar el archivo ocx que acompaña TMSAgent
DO CASE // -> Aki selecciono mediente un archivo INI para cada usuario el asistente con el cual trabajaran.
CASE nAsis == "1"
cFileAgent:= GetWinDir() + "\msagent\chars\Genie.acs"
CASE nAsis == "2"
cFileAgent:= GetWinDir() + "\msagent\chars\Merlin.acs"
CASE nAsis == "3"
cFileAgent:= GetWinDir() + "\msagent\chars\Peedy.acs"
CASE nAsis == "4"
cFileAgent:= GetWinDir() + "\msagent\chars\Robby.acs"
CASE nAsis == "5"
cFileAgent:= GetWinDir() + "\msagent\chars\Wabbit.acs"
CASE nAsis == "6"
cFileAgent:= GetWinDir() + "\msagent\chars\James.acs"
CASE nAsis == "7"
cFileAgent:= GetWinDir() + "\msagent\chars\Sam.acs"
CASE nAsis == "8"
cFileAgent:= GetWinDir() + "\msagent\chars\Hanz.acs"
CASE nAsis == "9"
cFileAgent:= GetWinDir() + "\msagent\chars\E-woman.acs"
CASE nAsis == "10"
cFileAgent:= GetWinDir() + "\msagent\chars\E-man.acs"
CASE nAsis == "11"
cFileAgent:= GetWinDir() + "\msagent\chars\Ben.acs"
ENDCASE
IF !FILE(cFileAgent)
msginfo("El Sistema no puede encontar el archivo que hace referencia al Asistente Animado Seleccionado."+CRLF+CRLF+"Se intentará Iniciar Sesión y Trabajar con el Asistente Predetermiando de "+cVersion+"..."+CRLF+CRLF+CRLF+"SOLUCIÓN:"+CRLF+CRLF+"Reinstale los Asistentes Animados del Sistema desde el Disco de Instalación de SISA2008.", "Microsoft Agent")
ENDIF
oAsis:= TMsAgent():New("MsAgent",.T.,cFileAgent)
IF !oAsis:lOk // hay que verificar si se puede usar el agente
MsgInfo( "No se pudo iniciar MsAgent","Aviso" )
// Si el agente no pudo iniciarse, los métodos NO tendrán efecto, NO habrá errores en tiempo de ejecución
ENDIF
IF oAsis:UsedByOtherApps() // habrá otras aplicaciones usándolo?
MsgInfo( "MsAgent es usado por otras aplicaciones", "Cuidado" )
ENDIF
oAsis:lWait := Espera
// ***********************************************************************
oAsis:lSpeechInPopups := Hablar // Nuevo en la versión 2.2
// ************************************************************************
// Distintos sonidos
oAsis:cSoundInfo := ".\aviso.wav"
oAsis:cSoundStop := ".\error.wav"
oAsis:cSoundQuestion := ".\pregunta.wav"
DEFINE WINDOW oWndMain TITLE "Pruebas con TMSAgent"
ACTIVATE WINDOW oWndMain MAXIMIZED ON INIT (PostCarga());
VALID (oAsis:wYesNo( "¿Deseas Terminar tu Sesión de Trabajo?", "Confirme" ))
oAsis:Hide()
oAsis:END()
QuitarRegistroOCX()
RETURN nil
//------------------//
STATIC FUNCTION PostCarga()
LOCAL XPos:= 825 //-> Aki recupero la posición X donde deje el asistente, y donde kiero que vuelva a aparecer
LOCAL YPos:= 545 //-> Aki recupero la posición Y donde deje el asistente, y donde kiero que vuelva a aparecer
LOCAL lAsist:= "1" //-> Dentro del archivo INI guardo si el asistente es visible (1) o si esta oculto (0)
LOCAL nSpeed:= "120" //-> Aki defino cuantas palabras va a decir el asistente
IF lAsist == "1"
oAsis:Show()
oAsis:Move(XPos,YPos,25)
ELSEIF lAsist == "0"
oAsis:Hide()
ENDIF
IF lAsist == "1"
oAsis:SAY("\Spd="+nSpeed+"\Hola Bienvenido a TMSAgent 2.2 ")
ENDIF
RETURN nil
//------------------//
STATIC FUNCTION RegistrarOCX()
//Aki agregas la clave al registro para registrar tu OCX
RETURN NIL
//------------------//
STATIC FUNCTION QuitarRegistroOCX()
//Aki quitas la clave al registro para que no usen tu OCX
RETURN NIL
aki estan los asistentes, puedes buscar en el google y probarlos uno por uno, ya que como te comente, algunos no son compatibles por los comandos que tienen para realizar ciertas actividades..
http://www.bellcraft.com/mash/chars.aspxPlaticame luego como te fue..
Saludos..