【问题标题】:Crazy Demo: Multiple Microsoft Agents疯狂演示:多个 Microsoft 代理
【发布时间】:2010-12-07 17:09:52
【问题描述】:

我正在为我正在做的演示创建一个极端且有点愚蠢的演示。我希望使用某种类型的 API 来显示多个参与者,并计划使用 Microsoft Agent。 Microsoft 代理是否可以同时显示 2 个或更多代理?使用多个线程或进程不是问题,也不一定要漂亮。

为了使使用 COM 更容易,我正在使用 PowerShell V2,我当前的代码如下所示:

$agent = new-object -com agent.control.2
$agent2 = new-object -com agent.control.2

$agent.connected = 1
$agent2.connected = 1
[void] $agent.characters.load("Merlin")
[void] $agent2.characters.load("Robby")
$merlin = $agent.characters.character("Merlin")
$robby = $agent2.characters.character("Robby")

# Insert silly demo with our actors Merlin and Robby here!

编辑: 我绝不会在 Microsoft Agent 上出售。如果您有更好的方法来做相同或类似的事情,我很想听听。

【问题讨论】:

    标签: powershell demo microsoft-agent


    【解决方案1】:

    最后,我在演示中使用了一个代理,但它仍然明白了重点。最后的演示是一个 microsoft 代理和 .NET 语音 api,它背诵了罗密欧与朱丽叶的一部分。我相信,如果您使用进程隔离,则可以获得多个,但您需要执行进程同步。

    【讨论】:

      【解决方案2】:

      是的,您可以使用 MSAgent 控件的单个实例加载和显示多个字符。您已经拥有执行此操作所需的代码,只需删除 $agent2 并将其替换为 $agent

      $agent = new-object -com agent.control.2
      
      $agent.connected = 1
      [void] $agent.characters.load("Merlin")
      [void] $agent.characters.load("Robby")
      $merlin = $agent.characters.character("Merlin")
      $robby = $agent.characters.character("Robby")
      

      您可以让多个角色相互交互。 Microsoft 提供了代码演示来展示这一点。

      例如:

      $merlin = $agent.characters.character("Merlin")
      $robby = $agent.characters.character("Robby")
      [void] $merlin.Show()
      $req = $merlin.Speak("Robby, where are you?")
      [void] $robby.Wait($req)
      $req = $robby.Show()
      [void] $merlin.Wait($req)
      $req = $merlin.Speak("Oh, there you are! How are you today?")
      [void] $robby.Wait($req)
      [void] $robby.Speak("I am good. Thank you for asking")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-18
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2013-02-12
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多