Сумасшедшая демонстрация: несколько агентов Microsoft - PullRequest
1 голос
/ 07 декабря 2010

Я создаю экстремальную и немного глупую демонстрацию для презентации, которую я даю.Я надеялся использовать какой-нибудь 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.Если у вас есть лучший способ сделать то же или подобное, я хотел бы услышать об этом.

Ответы [ 2 ]

1 голос
/ 19 апреля 2017

Да, вы можете загружать и отображать несколько символов с помощью одного экземпляра элемента управления 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")
1 голос
/ 09 декабря 2010

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

...