Accueil
Créer ses propres animations dans MS-Office (II)
Les agents ou MSagents
Le compagnon ou assistant  MS-Office






Auteur :             Christian Herbé
Mise en ligne:    Janvier 2002
MAJ:



Les MS agents sont de petits personnages qui parlent et qui se déplacent sur votre écran au gré de la programmation. Vous pouvez contrôler à peu près tous leurs faits et gestes. Ces personnages facétieux sont livrés avec les systèmes d'exploitations Micro$oft depuis Windows2000 et Windows Millenium. Il peuvent être pilotés par un programme VBA pour inter-agir avec une application MS-Office.
Pour vérifier leur présence sur votre système, regardez dans le dossier \Windows\Msagent\Chars Les fichiers *.ASC sont les personnages.
Pour Windows 95, 98 et NT4, vous devez télécharger (gratuitement) le fichier msagent.exe . MS vous offre 4 personnages. Mon préféré étant le perroquet, sélectionnez "Peedy" dans la liste des caractères (personnages). Vous pouvez trouver d'autres personnages sur le WEB .
En cas de doute, regardez dans le dossier \Win*\Msagent\Chars Les fichiers *.ASC sont les personnages.

Pour utiliser le perroquet depuis une application MS-Office, démarrez l'éditeur Visual Basic (Menu Outils | Macro | Macros | Visual editor).
Insérez un userform
Cliquez avec le bouton droit de la souris sur le fond de la boite à outils et sélectionnez "Contrôles supplémentaires"
Dans la liste dec contrôles disponibles, cochez "Microsoft Agent Control"
Un contrôle "Agent" s'est ajouté dans la boite à outils
Glissez le sur le Userform
Double-cliquez sur la grille du Userform pour accéder à la fenêtre de code
collez le code suivant et exécutez le (n'oubliez pas d'activez le son de l'ordinateur!):
 

Private Sub UserForm_Activate()
    UserForm1.Hide           ' inutile d'afficher le userform
    Dim texte As String      ' texte est la variable contenant le baratin
    texte = "Agent is a software technology that enables an enriched form of user interaction"
    Dim Merlin As IAgentCtlCharacter
    chemin = Environ("windir") & "\msagent\chars\Merlin.acs" ' récupérer le dossier Windows contenant l'agent

        'ici, la constante &h409 représente l'anglais; &H40C le francais
        Agent1.Characters.Load "Merlin", chemin  ' ouverture du fichier et définition d'un nom
        Agent1.Characters("Merlin").LanguageID = &H409 'on spécifie la langue voulue.
        'ici, la constante &h409 représente l'anglais; &H40C le francais

        Set Merlin = Agent1.Characters("Merlin") ' On instancie Merlin !
        Merlin.Show  ' on l'affiche
        Merlin.Speak texte 'on lui fait réciter le contenu de la variable texte

        ' VBA étant asynchrone, il faut suspendre la macro pour laisser un temps de parole suffisant à Merlin!
        Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 10)

End Sub


Les animations de l'agent

Glissez le contrôle "agent" depuis la boite à outils jusqu'au Userform
Double-cliquez sur la grille du Userform pour accéder à la fenêtre de code
collez le code suivant et exécutez le (n'oubliez pas d'activez le son de l'ordinateur!):
 

Private Sub UserForm_Activate()
    UserForm1.Hide
    ' stockage dans la variable "attitudes" des positions à prendre (ça m'fait penser à quekchose, pas vous?)
    Dim attitudes(1 To 37) As String
    attitudes(1) = "Alert"
    attitudes(2) = "Announce"
    attitudes(3) = "Blink"
    attitudes(4) = "Confused"
    attitudes(5) = "Congratulate"
    attitudes(6) = "Congratulate_2"
    attitudes(7) = "Decline"
    attitudes(8) = "DoMagic2"
    attitudes(9) = "DontRecognize"
    attitudes(10) = "Explain"
    attitudes(11) = "GestureDown"
    attitudes(12) = "GestureLeft"
    attitudes(13) = "GetAttention"
    attitudes(14) = "GetAttentionReturn"
    attitudes(15) = "Greet"
    attitudes(16) = "Idle1_1"
    attitudes(17) = "Idle1_2"
    attitudes(18) = "LookDown"
    attitudes(19) = "LookDownBlink"
    attitudes(20) = "LookDownReturn"
    attitudes(21) = "LookUp"
    attitudes(22) = "MoveDown"
    attitudes(23) = "Pleased"
    attitudes(24) = "Process"
    attitudes(25) = "Read"
    attitudes(26) = "ReadContinued"
    attitudes(27) = "ReadReturn"
    attitudes(28) = "RestPose"
    attitudes(29) = "Search"
    attitudes(30) = "StartListening"
    attitudes(31) = "StopListening"
    attitudes(32) = "Suggest"
    attitudes(33) = "Surprised"
    attitudes(34) = "Wave"
    attitudes(35) = "Write"
    attitudes(36) = "WriteContinued"
    attitudes(37) = "WriteReturn"

    Dim Merlin As IAgentCtlCharacter
    chemin = Environ("windir") & "\msagent\chars\peedy.acs"

    Agent1.Characters.Load "Merlin", chemin
    Agent1.Characters("Merlin").LanguageID = &H409 'anglais
    Set Merlin = Agent1.Characters("Merlin")
    Merlin.Show
    Merlin.Height = 300 'pour redimensionner Merlin
    Merlin.Width = 300

    For i = 1 To 37  'on lui fait prendre les 37 attitudes standards

        Merlin.Speak attitudes(i)
        On Error Resume Next ' certains personnages ne savent pas tout faire, il faut prévoir cette erreur
        Merlin.Play attitudes(i)
        'pause de 5 secondes
        Application.Wait (TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 5))

        Merlin.Play "RestPose" 'forcer Merlin à revenir à la position neutre
        Application.Wait (TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 1))
        Merlin.MoveTo Int((500 * Rnd) + 1), Int((500 * Rnd) + 1) ' déplacer aléatoirement Merlin
        Application.Wait (TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 1))

    Next i

    Merlin.Speak ("Déplacement")
    Merlin.MoveTo Int((500 * Rnd) + 1), Int((500 * Rnd) + 1) 'valeurs absolues

    Merlin.Speak ("Agrandissement")
    Merlin.Height = 300
    Merlin.Width = 300

    Merlin.Speak "\Chr=""Whisper""\Welcome to the Microsoft Agent Scripting Helper!" 'chuchotement
    Merlin.Think "Welcome to the Microsoft Agent Scripting Helper!"    'pensées

End Sub


Merlin parle aux Français!

Les MS-agents sont programmés pour l'anglais. Avant d'utiliser une autre langue, il faut télécharger le programme adapté:
    - rendez-vous sur la page de téléchargement de l'agent
    - sélectionnez la langue voulue  dans la rubrique Download the Microsoft Agent core components
    - téléchargez le composant Français
    - télécharger le composant "langage de l'agent" dans la rubrique Text-to-speech engines
    - installez-les

Pour faire parler l'agent en Français depuis une application MS-Office:
    démarrez l'éditeur Visual Basic (Menu Outils | Macro | Macros | Visual editor).
    Insérez un userform
    Cliquez avec le bouton droit de la souris sur le fond de la boite à outils et sélectionnez "Contrôles supplémentaires"
    Dans la liste dec contrôles disponibles, cochez "Microsoft Agent Control"
    Un contrôle "Agent" s'est ajouté dans la boite à outils
    Glissez le sur le Userform
    Double-cliquez sur la grille du Userform pour accéder à la fenêtre de code
    collez le code suivant et exécutez le (n'oubliez pas d'activez le son de l'ordinateur!):

Private Sub UserForm_Activate()

    UserForm1.Hide
    Dim Merlin As IAgentCtlCharacter
    chemin = Environ("windir") & "\msagent\chars\peedy.acs"

    Agent1.Characters.Load "Merlin", chemin
    'Agent1.Characters("Merlin").LanguageID = &H409 'anglais
    Agent1.Characters("Merlin").LanguageID = &H40C 'francais

    Set Merlin = Agent1.Characters("Merlin")
    Merlin.Show
    Merlin.Speak "Monsieur et Madame Bricot ont un fils. Comment l'appellent-ils ? Judas! Judas Bricot"
    'pause de 10 secondes
    Application.Wait (TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) +10))

End Sub
 


Accueil