Partager via


FAQ sur la programmation de scripts

[Microsoft Agent est déconseillé à partir de Windows 7 et peut être indisponible dans les versions ultérieures de Windows.]

Lorsque j’utilise Microsoft Visual Basic (ou d’autres outils de développement) pour écrire des scripts Microsoft Agent, je ne vois pas toutes les propriétés et événements utilisés dans vos exemples. Comment faire y accéder ?

La plupart des événements, méthodes et propriétés pris en charge par le contrôle Microsoft Agent sont exposés uniquement au moment de l’exécution. Pour plus d’informations, consultez Programmation du contrôle Microsoft Agent .

La balise Map (ou une autre balise) ne semble pas fonctionner.

Certaines balises incluent des chaînes entre guillemets. Pour certains langages de programmation, tels que Microsoft Visual Basic et Visual Basic Scripting Edition, vous devrez peut-être utiliser deux guillemets pour désigner le paramètre de la balise ou concaténer un caractère guillemet double dans la chaîne. Ce dernier est illustré dans cet exemple Visual Basic :

Agent1.Characters(« Genie »). Speak « This is \map= » + chr(34) + « Spoken text » _ + chr(34) + « = » + chr(34) + « Balloon text » + chr(34) + « \. »

Pour la programmation C, C++ et Java, précèdez les barres obliques inverses et les guillemets doubles d’une barre oblique inverse. Exemple :

BSTR bszSpeak = SysAllocString(L"This is \\map=\"Spoken text\"=\"Balloon text\"\ »);

pCharacter-Speak>(bszSpeak, ......);

Notes

Microsoft Agent ne prend pas en charge toutes les balises spécifiées dans l’API Microsoft Speech. En outre, la prise en charge de certains paramètres peut dépendre du moteur de synthèse vocale installé. Pour plus d’informations, consultez Balises de sortie vocale de Microsoft Agent.

 

Je ne semble pas recevoir les événements RequestStart et RequestComplete dans mon script (ou mon programme).

Cela peut être dû à l’un des problèmes suivants :

  • Votre langage de programmation ne prend pas entièrement en charge les contrôles ActiveX. Consultez votre documentation pour vous assurer qu’elle prend en charge l’interface ActiveX et les événements pour les objets ActiveX.
  • Sur une page web scriptée, l’installation ou le chargement d’un autre contrôle n’a pas pu être effectué. Vérifiez que tous les autres contrôles sont installés et chargés correctement sans Microsoft Agent.
  • Sur une page web avec un script avec des cadres, vous avez la <OBJECT> balise pour le contrôle Microsoft Agent sur une page, et les événements scriptés sur une autre page. Les événements sont envoyés uniquement à la page qui héberge le contrôle.

J’utilise le contrôle Microsoft Agent avec d’autres contrôles ActiveX sur ma page web, et je ne semble pas recevoir d’événements.

Vérifiez si les autres contrôles sont correctement installés. Si un autre contrôle ActiveX ne parvient pas à s’inscrire correctement, le contrôle Microsoft Agent peut recevoir ses événements.

Quels langages de programmation puis-je utiliser pour programmer le contrôle Microsoft Agent ?

Microsoft Agent doit être pris en charge à partir de n’importe quel langage qui prend en charge l’interface ActiveX. Il inclut des exemples de code pour Visual Basic, VBScript, JScript, C/C++ et Java.

Puis-je accéder aux paramètres retournés par Microsoft Agent à l’aide de JScript ?

Oui, mais pour l’instant, la seule façon de procéder consiste à utiliser la <SCRIPT LANGUAGE="JScript" FOR="*object*" EVENT="event()"> syntaxe . Bien que cette syntaxe soit prise en charge pour Microsoft Internet Explorer, d’autres navigateurs ne la prennent pas en charge. Vous pouvez donc éviter d’utiliser JScript pour cette partie du script de votre page.

Microsoft Agent peut-il être utilisé avec des moteurs de reconnaissance vocale ou de synthèse vocale (synthèse vocale ou TTS) autres que ceux fournis par Microsoft ?

Oui, à condition que le moteur prenne en charge les interfaces DE l’API Microsoft Speech (SAPI) 4.0 requises par Microsoft Agent. Vérifiez auprès du fournisseur du moteur. Pour plus d’informations sur les interfaces SAPI requises par Microsoft Agent, consultez Exigences de prise en charge du moteur Speech.

Ma page inclut des balises d’objet HTML pour Microsoft Agent, le moteur TTS TruVoice de Lernout & Hauspie et le moteur de reconnaissance vocale De commande et de contrôle Microsoft, mais pas tous les composants installés.

En règle générale, le problème peut être corrigé en actualisant la page. En règle générale, il est préférable de spécifier d’abord la balise Microsoft Agent Control <OBJECT> , puis le moteur TruVoice de Lernout & Hauspie, puis le moteur de reconnaissance vocale Command and Control.

Après avoir appelé la méthode MoveTo, mon caractère semble se figer même si j’ai affecté des animations de retour aux animations d’état de déplacement.

Lorsque vous lisez une animation, les services d’animation continuent d’afficher sa dernière image jusqu’à ce qu’une autre animation soit appelée. Par conséquent, vous devez lire une autre animation après avoir appelé MoveTo. Si vous avez défini une animation de retour pour l’animation d’état de déplacement , le serveur la lira en premier.

Lorsque j’interroge la propriété Pitch du caractère, elle retourne une valeur de -1.

Cela se produit si le caractère a été compilé à l’aide de la propriété pitch par défaut d’un moteur de reconnaissance vocale ; c’est-à-dire que le pitch n’a pas été modifié lors de la construction du personnage.

Lorsque mon code tente de définir l’ID de mode TTS pour un moteur de synthèse vocale, j’obtiens l’erreur suivante : Impossible d’effectuer un appel sortant, car l’application distribue un appel synchrone d’entrée.

Pour définir la propriété TTSModeID, vous devez avoir installé Speech.dll. Il s’agit généralement d’une partie du code d’installation du moteur speech. Vous pouvez également l’installer en installant le panneau de configuration de l’objet Speech , disponible à partir de la page Téléchargements de Microsoft Agent.

Lorsque j’essaie à nouveau de charger un caractère qui n’a pas pu être chargé, l’appel échoue avec une erreur « Caractère déjà chargé ».

Le contrôle Microsoft Agent ne décharge pas d’objet character (libère la référence) lorsque le chargement du fichier de caractères associé échoue. Si vous souhaitez réessayer de charger le caractère, vous devez appeler explicitement Unload avant d’appeler Load la deuxième fois. Si vous tentez cette opération à partir d’un script de page web, vous devez également faire précéder l’appel de déchargement avec une instruction On Error Resume Next, sinon l’appel de déchargement échoue également. (Notez que JScript n’a pas d’instruction On Error Resume Next.)

Toutefois, vous n’aurez peut-être pas besoin d’inclure du code pour réessayer immédiatement de charger un caractère lorsque le chargement du fichier échoue. Microsoft Internet Explorer et le composant serveur microsoft Agent tentent automatiquement de réessayer plusieurs fois, de sorte que les chances que votre nouvelle tentative aboutissent à un chargement réussi sont distantes. Une meilleure stratégie consiste à attendre (définir un minuteur) quelques secondes avant de réessayer.

Comment puis-je installer Microsoft Agent dans le cadre de mon application ou à partir de mon serveur web ?

Vous pouvez installer Agent à partir du site web Microsoft en incluant son CLSID dans une balise d’objet HTML. Toutefois, si vous souhaitez inclure et installer Agent à partir de votre propre programme d’installation d’application ou de votre propre serveur, vous devez télécharger le fichier d’armoire à installation automatique de Microsoft Agent, en le téléchargeant à partir de la page Téléchargements. Lors du téléchargement, choisissez l’option Enregistrer plutôt que Exécuter du navigateur. Chaque fois que ce fichier est exécuté, il installe automatiquement Microsoft Agent sur l’ordinateur cible. Par conséquent, vous pouvez spécifier le fichier dans votre script d’installation.

N’essayez pas d’installer Microsoft Agent en copiant ses différents . DLL et tentative de l’inscrire vous-même. La tentative d’installation de l’Agent par d’autres moyens, puis l’exécution de son fichier d’armoire à installation automatique n’est pas prise en charge.

Le système cible doit également inclure des versions récentes de MSVCRT.DLL (runtime VC++), REGSVR32.EXE (outil d’inscription inclus avec Microsoft VC++) et COM. La meilleure façon de s’assurer que les versions correctes sont installées consiste à exiger que Microsoft Internet Explorer 3.02 ou version ultérieure soit installé. Toutefois, vous pouvez également licencer ces exigences d’exécution. (Pour la dernière version de COM, accédez à la mise à jour DCOM à partir du site web de Microsoft.)

Microsoft Agent 2.0 ne s’installera pas sur Microsoft Windows 2000, car cette version du système d’exploitation inclut déjà Agent.

Puis-je utiliser l’Assistant Installation de Visual Basic pour installer Microsoft Agent ?

Bien que vous puissiez créer votre propre programme d’installation à l’aide de code Visual Basic (VB), vous ne pouvez pas utiliser l’Assistant Installation de Visual Basic pour ce faire. Pour installer Agent à partir de VB, vous pouvez utiliser la commande Shell, en spécifiant le fichier d’armoire à installation automatique de Microsoft Agent.

Comment faire installer Microsoft Agent sur Windows 2000 ?

Microsoft Agent 2.0 ne s’installe pas sur Windows 2000, car il est déjà inclus dans le système d’exploitation.

AgentSvr se bloque lorsque Speak est appelé avec un fichier WAV.

Cela peut se produire lorsque le caractère utilise TTS pour la sortie orale, puis que des modifications sont apportées à l’utilisation d’un fichier WAV. Le texte n’a pas été fourni dans le premier paramètre de la méthode Speak.

Pour éviter le blocage, incluez un espace dans le premier paramètre de la méthode Speak, même si vous n’avez pas de sortie de texte.

Même si j’ai déjà installé le composant de langage de l’agent (DLL) pour une langue particulière, j’ai toujours une erreur indiquant que le composant est manquant lorsque j’ai défini la langue du caractère sur cette langue.

Cela se produit généralement lorsque vous avez des applications Agent telles que Microsoft Office 2000 ouvertes lorsque vous installez le composant de langage agent. Fermez toutes les applications et réessayez. Si le problème persiste, redémarrez votre ordinateur et vous devriez pouvoir définir l’ID de langue maintenant.

Lorsque j’utilise le symbole « & », le texte autour du symbole dans les bulles de mots du caractère est tronqué.

Il s'agit d'un problème connu. Vous pouvez contourner ce problème à l’aide de la balise de carte. Par exemple, pour afficher « A & B » dans la bulle de mots du caractère, utilisez « A \map=»and"=""&&\B » dans l’instruction Speak.

Mon application permet aux utilisateurs de modifier le caractère par défaut et quand ils le font, le programme se bloque.

Il existe deux causes possibles :

Si vous modifiez l’ID du mode TTS du caractère par défaut, puis autorisez l’utilisateur à modifier le caractère par défaut via ShowDefaultCharacterProperties, AgentSvr se bloque.

Ce problème a été résolu dans les systèmes d’exploitation Windows 2000 et Windows XP. Pour éviter l’incident sur d’autres plateformes, vous devez soit ne pas autoriser l’utilisateur à modifier le caractère par défaut après avoir modifié l’ID du mode TTS du caractère par défaut, soit ne pas utiliser le caractère par défaut dans votre application ou page web.

Si votre application n’utilise pas les caractères agent fournis par Microsoft, assurez-vous que votre caractère personnalisé utilise une palette avec une palette complète de 256 couleurs. Pour plus d’informations, consultez le document Conception de caractères pour Microsoft Agent.

Ma page charge le caractère Agent à partir de plusieurs images. Avec Internet Explorer 5, j’obtiens l’erreur échec du chargement de l’agent Microsoft.

Il s’agit d’un problème connu avec Internet Explorer 5. Il y a eu un changement dans la façon dont le navigateur gère un certain événement, ce qui entraîne le début de l’exécution du script HTML avant le démarrage d’AgentSvr. Pour que votre page fonctionne avec toutes les versions du navigateur, vous devez ajouter cette ligne à votre script :

AgentControl.Connected = True

qui crée explicitement une connexion à AgentSvr. Notez que vous n’avez besoin de le faire que si votre page charge Agent à partir de plusieurs images.

Lorsque mon application tente d’installer Microsoft Agent sur Windows 2000 (ou Windows XP), je reçois l’erreur indiquant que l’Agent n’est pas compatible avec Windows 2000 (ou Windows XP).

Une version précédente du fichier d’armoire de composants principaux de l’agent MSAGENT.exe, lorsqu’elle est exécutée sur Windows 2000 (et Windows XP), bloque l’installation et affiche un message d’erreur incorrect indiquant que l’Agent n’est pas compatible avec la version du système d’exploitation que vous exécutez. En fait, les composants principaux de Microsoft Agent 2.0 sont inclus dans Windows 2000 (et Windows XP) et sont déjà installés par défaut via le programme d’installation de Windows.

Dans cette version, le case activée est supprimé et le fichier d’installation n’affiche pas le message d’erreur ci-dessus sous Windows 2000 (ou Windows XP). Notez qu’il s’agit de la seule modification apportée au fichier d’installation et qu’il n’y a aucune modification de code apportée aux composants principaux de l’Agent eux-mêmes. Par conséquent, vous n’êtes pas affecté par cette mise à jour si l’agent 2.0 est déjà installé ou si votre site web utilise une balise d’objet pour déclencher des téléchargements automatiques des composants principaux de l’agent à partir du Microsoft Object Store.

Si vous incluez le fichier d’installation du composant Principal de l’agent avec votre application ou si vous publiez le fichier d’installation sur votre serveur, vous pouvez télécharger cette mise à jour. Pour ce faire, cliquez ici et sélectionnez l’option « Enregistrer ce programme sur le disque ». Vous devez disposer d’une licence de distribution d’agent valide et actuelle pour ces circonstances.

Vous pouvez également contourner ce problème à l’aide de l’option silencieux lors de l’installation de la version précédente du fichier d’installation MSAGENT.exe. La commande shell est la suivante :

MSAGENT.exe /q:a

Il en va de même pour les composants du langage agent qui ont été publiés à l’origine en octobre 1998. Une case activée empêchait l’installation des composants arabe, Français, allemand, hébreu, italien, japonais, coréen, chinois simplifié, espagnol et chinois traditionnel sous Windows 2000 (et Windows XP). Les versions plus récentes de ces fichiers d’installation, ainsi que les 19 langues supplémentaires ajoutées en mars 2000, ne contiennent pas cette case activée et s’installent correctement sur Windows 2000 (et Windows XP).

Mon caractère personnalisé présente un comportement inattendu avec sa couleur de transparence sur Windows 2000 (et Windows XP).

Il s’agit d’un problème connu pour les caractères créés avec une palette de moins de 256 couleurs. Les problèmes liés à ces caractères incluent la couleur de transparence affichée en arrière-plan, le texte du ballon transparent, la bordure de ballon transparente ou l’arrière-plan de ballon transparent. Notez que ces caractères peuvent provoquer le blocage de vos applications lorsqu’elles sont chargées dans la boîte de dialogue du sélecteur de caractères agent ou dans la galerie de l’Assistant Microsoft Office. Vos caractères personnalisés doivent utiliser une palette complète de 256 couleurs. Vous pouvez utiliser l’exemple de palette fourni pour les caractères de l’Assistant Office comme point de départ avec une palette de 256 couleurs complète.

Le caractère n’utilise pas le moteur TTS anglais britannique même si j’ai défini son ID de langue sur anglais britannique &h0809.

Assurez-vous d’abord que tous les composants nécessaires sont installés : composants principaux de l’agent, fichiers binaires du runtime SAPI et un moteur TTS anglais britannique conforme à SAPI4, comme le moteur TTS3000 anglais britannique, disponible en téléchargement sur la page Téléchargements de l’agent. Si votre personnage n’utilise toujours pas le moteur TTS anglais britannique, il est probable que vous ayez également installé un moteur TTS anglais américain. Étant donné que l’anglais britannique et l’anglais américain partagent la même langue principale (anglais) et que l’anglais américain est la valeur par défaut, Agent choisit le premier moteur TTS anglais américain disponible tel que retourné par SAPI. Pour utiliser un moteur TTS anglais britannique, utilisez plutôt la propriété TTSModeID du caractère. Par exemple, le TTSModeID pour la voix masculine anglaise britannique TTS3000 est {227A0E41-A92A-11d1-B17B-0020AFED142E}. Dans Microsoft Visual Basic, vous pouvez utiliser ce moteur en définissant le TTSModeID de Merlin comme suit :

AgentControl.Characters(« Merlin »). TTSModeID = {227A0E41-A92A-11d1-B17B-0020AFED142E}

Lorsque le volume du caractère est défini sur zéro à l’aide de la balise vocale \Vol=0\, il n’a aucun effet ou bloque AgentSvr.

Il s’agit d’un problème connu. Sur les systèmes d’exploitation Windows 95, Windows 98 et Windows Me, le volume du caractère ne change pas, mais reste au niveau défini précédemment. Sur les plateformes Windows NT 4.0, Windows 2000 et Windows XP, agentSvr se bloque, même lorsqu’un moteur TTS n’est pas installé. Étant donné que la plage du volume du caractère, comprise entre 0 (silence) et 65535 (volume maximal), est grande et que la différence entre les niveaux successifs est à peine perceptible, la solution de contournement facile consiste à définir le volume sur 1 au lieu de 0 lorsque vous souhaitez que la voix du caractère soit inaudible.

L’animation retour de mon personnage personnalisé ne se lit pas correctement après les animations MoveDown, MoveLeft, MoveRight et/ou MoveUp.

Assurez-vous qu’une animation orale simple est affectée à l’état de parole. Par exemple, vous pouvez utiliser une image unique composée de la position neutre du caractère avec des superpositions de bouche.