2010-12-07 2 views
1

나는 프리젠 테이션을 위해 극단적이고 다소 어리석은 데모를 만들고 있습니다. 몇 가지 유형의 API를 사용하여 여러 액터를 표시하고 Microsoft Agent를 사용할 계획이었습니다. Microsoft 상담원이 2 명 이상의 상담원을 동시에 표시 할 수 있습니까? 다중 쓰레드 나 프로세스를 사용하는 것은 문제가되지 않으며 결코 멋지지 않아야합니다.Crazy Demo : 다수의 Microsoft 상담원

$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! 

편집 : 마이크로 소프트 에이전트에 판매 의미없이 내가

쉽게 내가 PowerShell을 V2와 내 현재 코드는 다음과 같이 보입니다를 사용하고 COM 작업을 확인하십시오. 당신이 동일하거나 유사한 일을하는 더 좋은 방법이 있다면 나는 그것에 대해 듣기를 좋아할 것입니다.

답변

1

결국 데모 용으로 하나의 에이전트를 사용했지만 여전히 포인트가 있습니다. 최종 데모는 마이크로 소프트 에이전트와 로미오와 줄리엣의 일부를 암송하는 .NET 스피치 API였다. 프로세스 격리를 사용하지만 프로세스 동기화를 수행해야하는 경우 둘 이상을 얻을 수 있다고 생각합니다.

1

예, 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")