2010-12-07 8 views
1

Je crée une démo extrême et un peu ridicule pour une présentation que je donne. J'espérais utiliser un type d'API pour afficher plusieurs acteurs et prévoyais d'utiliser Microsoft Agent. Est-il possible avec l'agent Microsoft d'afficher deux ou plusieurs agents en même temps? L'utilisation de plusieurs threads ou processus n'est pas un problème et il ne doit en aucun cas être joli.fou Demo: plusieurs agents Microsoft

Pour faciliter le travail avec COM facile, je suis en utilisant PowerShell V2 et mon code actuel ressemble à ceci:

$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: Je ne suis nullement vendus sur Microsoft Agent. Si vous avez une meilleure façon de faire la même chose ou une chose similaire, j'aimerais en entendre parler.

Répondre

1

En fin de compte j'ai utilisé un seul agent pour ma démo et il encore obtenu le point à travers. La démo finale était un agent de Microsoft et le discours api .NET récitant une partie de Roméo et Juliette. Je crois qu'il est possible d'en obtenir plus d'un si vous utilisez l'isolation de processus, mais vous devrez alors effectuer une synchronisation de processus.

1

Oui, vous pouvez charger et afficher plusieurs caractères avec une seule instance du contrôle MSAgent. Vous avez déjà le code nécessaire pour cela, il suffit de se débarrasser de $agent2 et de le remplacer par $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") 

Plusieurs caractères peuvent interagir entre eux. Microsoft fournit des démos de code pour montrer cela en action.

Par exemple:

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