<%@ page aspcompat=true %>
<%@ Import NameSpace="System.Data" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<script language="vb"  runat="server">
  
  Sub page_load(sender as object,e as eventargs)
     dim myagent as object
 
 myagent=server.createobject("Agent.control.2")
 myagent.Connected = True
        myagent.Characters.Load("merlin","C:\WINDOWS\msagent\chars\merlin.acs")
 myagent.Characters.Character("merlin").LanguageID = &H0409
 myagent.Characters.Character("merlin").show()   
 myagent.Characters.Character("merlin").speak("hello")
  
 End Sub
  
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body></body>
</html>主要思想:在调用msagent这个com组件
运行也没有任何出错提示,但就是无法显出“merlin”,也不能读音
各位大侠帮忙看一下,是不是在asp.net中调用com组件还有其它要求啊,怎么死活不出现呢?
急急
谢谢各位了

解决方案 »

  1.   

    难道没人用过msagent吗?继续求救中。
      

  2.   

    楼上的用过吗?我在vb.net中看了一下,好象是com组件啊
    这段代码运行时,任务管理 器里的agentsvr.exe程序也是在运行的,说明msagent已经打开了
      

  3.   

    -----代码运行在客户端脚本上是没问题的。但在服务器端就显示不出来了啊
    两台机器上的com版本是不是一样,服务器上是否安装了客户端用的sdk或组件
      

  4.   

    回楼上的:我用的是同一台机器,用的是localhost访问的啊。是否还要做什么设置呢?
      

  5.   

    在C:\WINDOWS\msagent\chars目录中有没有merlin.acs
      

  6.   

    我是用javascript调用的,显示页面的机器C:\WINDOWS\msagent\chars\必须有merlin.acs<script language=javascript>
    function ShowAgent(sMsg)
    {
    var agent;
    var Merlin;
    agent = new ActiveXObject("Agent.Control.2"); 
    agent.Connected = true;
    agent.Characters.Load("merlin","C:\WINDOWS\msagent\chars\merlin.acs")
    Merlin = agent.Characters(merlin);
    Merlin.Show();
    Merlin.Speak(sMsg);
    Merlin.Play("Announce");
    Merlin.Play("Explain");
    Merlin.Hide();
    }
      

  7.   

    Merlin = agent.Characters("merlin");
    写错了 -_-#
      

  8.   

    先谢谢楼上的我的C:\WINDOWS\msagent\chars\下是有merlin.acs的最初我是用vbscript调用它,是可以出来,以能做动作,说话
    但后来放在服务器端就不行了因为我是asp.net编的网页,所以想和上面的web控件进行交互,那是不是一定要放在服务器端,才能进行交互呢?
    譬如说我单击一个button按钮,就出现msagent,但这个按钮是runat="server"在vbscript脚本中能否调用web控件?
      

  9.   


            myagent.Characters.Load("merlin","C:\\WINDOWS\\msagent\\chars\\merlin.acs")
      

  10.   

    myagent.Characters.Load("merlin","C:\\WINDOWS\\msagent\\chars\\merlin.acs")我这样可以的啊
      

  11.   

    请问是在服务器端运行的吗?
    是不是就把我的代码中,merli.acs的地址改了?其它的有改吗?可以将您的代码贴上来吗?
      

  12.   

    因为我是asp.net编的网页,所以想和上面的web控件进行交互,那是不是一定要放在服务器端,才能进行交互呢?
    譬如说我单击一个button按钮,就出现msagent,但这个按钮是runat="server"
    ------------------非常抱歉,没认真看上面的帖子,我是在客户端javascript直接调的。
    <asp:Button runat = "server" id = "btn"....
    如果想点击后,可以执行客户段脚本的话,可以这样的
    在服务器代码中写  btn.Attributes.Add("onclick","这里就可以写你要使用的客户脚本");或者用这种控件
    <input type = "button" runat="server" ...
    用这个的话,可以直接在标签里写 onclick...
    这样在客户段点button的时候,会先执行你的onclick中执行的脚本,然后在提交到服务器,执行服务器上的click事件代码。
    如果onclick = "fun();return false;"这样就不会提交到服务器了不知道这样是不是能满足楼主的要求。
      

  13.   

    把下面的代码保存成HTML然后看一下源代码:<html>
    <head>
    <style>button{width:100;border:outset 2;}</style>
    </head>
    <body bgcolor=threedface scroll=auto><button onclick=   Merlin.Play("RestPose") >复位
    <button onclick=   Merlin.Stop() >停止
    <button onclick=   Merlin.Play("Acknowledge") >点头
    <button onclick=   Merlin.Play("Surprised") >惊讶
    <button onclick=   Merlin.Play("GestureUp") >手势
    <button onclick=   Merlin.Play("Pleased") >满足
    <button onclick=   Merlin.Play("Alert") >警告
    <button onclick=   Merlin.Play("Announce") >宣布
    <button onclick=   Merlin.Play("Blink") >眨眼
    <button onclick=   Merlin.Play("Confused") >困惑
    <button onclick=   Merlin.Play("Congratulate") >恭喜1
    <button onclick=   Merlin.Play("Congratulate_2")   >恭喜2
    <button onclick=   Merlin.Play("Decline") >拒绝
    <button onclick=   Merlin.Play("DoMagic1")    >变魔术1
    <button onclick=   Merlin.Play("DoMagic2") >变魔术2
    <button onclick=   Merlin.Play("DontRecognize") >没听清
    <button onclick=   Merlin.Play("Explain") >说明
    <button onclick=   Merlin.Play("GetAttention") >敲一下
    <button onclick=   Merlin.Play("GetAttentionContinued") >不停敲
    <button onclick=   Merlin.Play("GetAttentionReturn") >不敲了
    <button onclick=   Merlin.Play("Greet") >问候
    <button onclick=   Merlin.Play("Hearing_1") >听1
    <button onclick=   Merlin.Play("Hearing_2") >听2
    <button onclick=   Merlin.Play("Hearing_3") >听3
    <button onclick=   Merlin.Play("Hearing_4") >听4
    <button onclick=   Merlin.Play("Idle1_1") >1-1
    <button onclick=   Merlin.Play("Idle1_2") >1-2
    <button onclick=   Merlin.Play("Idle1_3") >1-3
    <button onclick=   Merlin.Play("Idle1_4") >1-4
    <button onclick=   Merlin.Play("Idle2_1") >2-1
    <button onclick=   Merlin.Play("Idle2_2") >2-2
    <button onclick=   Merlin.Play("Idle3_1") >3-1
    <button onclick=   Merlin.Play("Idle3_2") >3-2
    <button onclick=   Merlin.Play("LookDown") >俯视
    <button onclick=   Merlin.Play("LookDownBlink") >俯视眨眼
    <button onclick=   Merlin.Play("LookDownReturn") >俯视眨眼返回
    <button onclick=   Merlin.Play("MoveUp") >上移
    <button onclick=   Merlin.Play("MoveDown") >下移
    <button onclick=   Merlin.Play("MoveLeft") >左移
    <button onclick=   Merlin.Play("MoveRight") >右移
    <button onclick=   Merlin.Play("Process") >熬汤
    <button onclick=   Merlin.Play("Processing") >熬汤
    <button onclick=   Merlin.Play("Read") >读
    <button onclick=   Merlin.Play("ReadReturn") >不读了
    <button onclick=   Merlin.Play("Reading") >正在读
    <button onclick=   Merlin.Play("ReadContinued") >不停读
    <button onclick=   Merlin.Play("Sad") >悲哀
    <button onclick=   Merlin.Play("Search") >查找
    <button onclick=   Merlin.Play("Searching") >正在查找
    <button onclick=   Merlin.Play("StartListening") >听
    <button onclick=   Merlin.Play("StopListening") >捂耳朵
    <button onclick=   Merlin.Play("Suggest") >暗示
    <button onclick=   Merlin.Play("Uncertain") >想飞
    <button onclick=   Merlin.Play("Wave") >挥手
    <button onclick=   Merlin.Play("Write") >写东西
    <button onclick=   Merlin.Play("WriteContinued") >不停写
    <button onclick=   Merlin.Play("WriteReturn") >不写了
    <button onclick=   Merlin.Think("fly") >想<button onclick=   doalert('something') >说<script>
    function doalert(text) {
    Merlin.Speak(text);
    }
    </script><Object ID=agent ClassID=CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F></Object><script>
    var MerlinID;
    var MerlinACS;
    agent.Connected=true;
    MerlinLoaded=LoadLocalAgent(MerlinID,MerlinACS);
    Merlin=agent.Characters.Character(MerlinID);
    Merlin.Show();function LoadLocalAgent(CharID,CharACS){
    LoadReq=agent.Characters.Load(CharID,CharACS);
    return(true);
    }
    </script></body>
    </html>
      

  14.   

    回t0h:谢谢你。我现在用的是vb,c#不怎么太会
       
       目前我还是只有把那段代码放在vbscript中执行的,放在服务器好象没有什么好的办法。
       我的vbscript没有runat="server",但我想在脚本中实现页面转向,例如:   Sub Agent_Click (ByVal CharacterID,ByVal Button,ByVal Shift,ByVal X,ByVal Y)
        response.Redirect "new.aspx"
       end sub      这个事件里的代码我一开始是 myAgent.Characters.character("peedy").speak "hello"    执行都是ok,但换成页面转向 response.Redirect "new.aspx"就执行错误了   我记得vbscript语言是支持response.redirect的啊,怎么会错误呢?
      

  15.   

    应该可以用这个的window.location="new url"
      

  16.   

    恩,可以的
    非常感谢t0h,呵呵只是msagent只能在客户端运行了,郁闷呐
      

  17.   

    window.open(newUrl)window.showModalDialog(newUrl,window.arguments,"dialogHeight:550px;dialogWidth:800px;resizable=yes;toolbar=no;menubar =no; location=no;status=no;help=no");
      

  18.   

    谢谢t0h,你知不知道在vbscript脚本怎么调用表单上的web控件,我的脚本是运行在客户端的.
      

  19.   

    估计是访问拒绝。
    也就是权限太低的缘故。
    asp.net(aspnet_wp.aspx)是以很低的权限运行的。
    本人估计不能执行该操作。
      

  20.   

    上面写错了啊 => aspnet_wp.exe
      

  21.   

    那是不是要在<script language=vbscript runat="server">加上runat="server",我的原来脚本语言就出现语法错误
      

  22.   

    http://chs.gotdotnet.com/quickstart/default.aspx看看这个,对你会有帮助
      

  23.   

    你在服务期端运行有个P用啊,默林显示在Web服务器上了,又因为IIS的那个服务是不能与桌面交互的,所以你看不到也听不到默林。。