2010-12-07 3 views
1

Я создаю необычную и добрую глупую демонстрацию для презентации, которую я даю. Я надеялся использовать некоторый тип API для отображения нескольких участников и планировал использовать агент Microsoft. Возможно ли с агентом Microsoft одновременно отображать 2 или более агента? Использование нескольких потоков или процессов не является проблемой, и это ни в коем случае не должно быть красивым.Сумасшедшая демонстрация: несколько агентов Microsoft

Для того, чтобы работать с 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! 

EDIT: Я отнюдь не проданных на Microsoft Agent. Если у вас есть лучший способ сделать то же самое или что-то подобное, я хотел бы услышать об этом.

ответ

1

В конце концов я использовал один агент для своей демонстрации, и у него все еще была точка. Последняя демо была агентом microsoft и речевой аськой .NET, рассказывающей о части Ромео и Джульетты. Я считаю, что при использовании изоляции процесса можно получить более одного, но тогда вам потребуется выполнить синхронизацию процессов.

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