Freigeben über


Häufig gestellte Fragen zur Programmierung von Skripts

[Microsoft Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]

Wenn ich Microsoft Visual Basic (oder andere Entwicklungstools) für die Skripterstellung von Microsoft Agent verwende, werden mir nicht alle Eigenschaften und Ereignisse angezeigt, die in Ihren Beispielen verwendet werden. Gewusst wie darauf zugreifen?

Die meisten ereignisse, methoden und eigenschaften, die vom Microsoft Agent-Steuerelement unterstützt werden, werden nur zur Laufzeit verfügbar gemacht. Weitere Informationen finden Sie unter Programmieren des Microsoft-Agent-Steuerelements .

Das Map-Tag (oder ein anderes Tag) scheint nicht zu funktionieren.

Einige Tags enthalten Anführungszeichen. Bei einigen Programmiersprachen, z. B. Microsoft Visual Basic und Visual Basic Scripting Edition, müssen Sie möglicherweise zwei Anführungszeichen verwenden, um den Parameter des Tags festzulegen oder ein Zeichen mit doppeltem Anführungszeichen als Teil der Zeichenfolge zu verketten. Letzteres wird in diesem Visual Basic-Beispiel gezeigt:

Agent1.Characters("Genie"). Sprechen Sie "This is \map=" + chr(34) + "Spoken text" _ + chr(34) + "=" + chr(34) + "Balloon text" + chr(34) + "\".

Bei C-, C++- und Java-Programmierung werden umgekehrte Schrägstriche und doppelte Anführungszeichen mit einem umgekehrten Schrägstrich vorangestellt. Beispiel:

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

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

Hinweis

Der Microsoft-Agent unterstützt nicht alle Tags, die in der Microsoft Speech-API angegeben sind. Darüber hinaus hängt die Unterstützung für einige Parameter möglicherweise von der installierten Text-zu-Sprache-Engine ab. Weitere Informationen finden Sie unter Ausgabetags für Microsoft Agent Speech.

 

Ich erhalte anscheinend keine RequestStart- und RequestComplete-Ereignisse in meinem Skript (oder Programm).

Dies kann durch eines der folgenden Probleme verursacht werden:

  • Ihre Programmiersprache unterstützt ActiveX-Steuerelemente nicht vollständig. Überprüfen Sie Ihre Dokumentation, um sicherzustellen, dass sie die ActiveX-Schnittstelle und -Ereignisse für ActiveX-Objekte unterstützt.
  • Auf einer skriptbasierten Webseite konnte ein anderes Steuerelement nicht installiert oder geladen werden. Stellen Sie sicher, dass alle anderen Steuerelemente ohne Microsoft Agent installiert und geladen werden.
  • Auf einer skriptbasierten Webseite mit Frames verfügen Sie über das <OBJECT> Tag für das Microsoft Agent-Steuerelement auf einer Seite und die Ereignisse, die auf einer anderen Seite skriptiert werden. Ereignisse werden nur an die Seite gesendet, die das Steuerelement hostet.

Ich verwende das Microsoft Agent-Steuerelement mit anderen ActiveX-Steuerelementen auf meiner Webseite, und ich erhalte anscheinend keine Ereignisse.

Überprüfen Sie, ob die anderen Steuerelemente ordnungsgemäß installiert sind. Wenn sich ein anderes ActiveX-Steuerelement nicht ordnungsgemäß registriert, empfängt das Microsoft Agent-Steuerelement möglicherweise seine Ereignisse.

Welche Programmiersprachen kann ich verwenden, um das Microsoft Agent-Steuerelement zu programmieren?

Microsoft Agent sollte von jeder Sprache unterstützt werden können, die die ActiveX-Schnittstelle unterstützt. Es enthält Codebeispiele für Visual Basic, VBScript, JScript, C/C++ und Java.

Kann ich mit JScript auf die vom Microsoft-Agent zurückgegebenen Parameter zugreifen?

Ja, aber die einzige Möglichkeit dazu ist derzeit die Verwendung der <SCRIPT LANGUAGE="JScript" FOR="*object*" EVENT="event()"> Syntax. Obwohl diese Syntax für Microsoft Internet Explorer unterstützt wird, werden sie von anderen Browsern nicht unterstützt. Daher sollten Sie die Verwendung von JScript für diesen Teil des Skripts Ihrer Seite vermeiden.

Kann Der Microsoft-Agent mit anderen als den von Microsoft bereitgestellten Engines für Spracherkennung oder Sprachsynthese (Text-to-Speech, TTS) verwendet werden?

Ja, vorausgesetzt, das Modul unterstützt die microsoft Speech API (SAPI) 4.0-Schnittstellen, die für Microsoft Agent erforderlich sind. Wenden Sie sich an den Motorlieferanten. Ausführliche Informationen zu den SAPI-Schnittstellen, die für den Microsoft-Agent erforderlich sind, finden Sie unter Supportanforderungen für Sprachmodule.

Meine Seite enthält HTML-Objekttags für Den Microsoft-Agent, das Lernout & Hauspie TruVoice TTS-Engine und die Microsoft Command and Control-Spracherkennungs-Engine, aber nicht alle Komponenten werden installiert.

In der Regel kann das Problem durch Aktualisieren der Seite behoben werden. Als allgemeine Praxis empfiehlt es sich, zuerst das Microsoft Agent Control-Tag <OBJECT> , dann die Lernout & Hauspie TruVoice-Engine und dann die Spracherkennungs-Engine "Befehl und Steuerung" anzugeben.

Nach dem Aufrufen der MoveTo-Methode scheint mein Charakter einzufrieren, obwohl ich Return-Animationen bewegten Zustandsanimationen zugewiesen habe.

Wenn Sie eine Animation wiedergeben, zeigen die Animationsdienste weiterhin den letzten Frame an, bis eine andere Animation aufgerufen wird. Daher sollten Sie nach dem Aufruf von MoveTo eine weitere Animation wiedergeben. Wenn Sie eine Rückgabeanimation für die Animation "Moving state" definiert haben, wird sie vom Server zuerst wiedergegeben.

Wenn ich die Pitch-Eigenschaft des Zeichens abfrage, wird der Wert -1 zurückgegeben.

Dies tritt auf, wenn das Zeichen mithilfe der Standardmäßigen Pitch-Eigenschaft eines Sprachmoduls kompiliert wurde. Das heißt, die Tonhöhe wurde beim Erstellen des Zeichens nicht geändert.

Wenn mein Code versucht, die TTS-Modus-ID für eine Text-zu-Sprache-Engine festzulegen, erhalte ich die folgende Fehlermeldung: Ein ausgehender Aufruf kann nicht ausgeführt werden, da die Anwendung einen eingabesynchronen Aufruf sendet.

Um die TTSModeID-Eigenschaft festzulegen, muss Speech.dll installiert sein. Dies ist in der Regel Teil des Installationscodes der Sprach-Engine. Sie können dies auch installieren, indem Sie die Systemsteuerung des Speech-Objekts installieren, die auf der Seite Downloads des Microsoft-Agents verfügbar ist.

Wenn ich erneut versuchen, ein Zeichen zu laden, das nicht geladen werden konnte, schlägt der Aufruf mit dem Fehler "Zeichen bereits geladen" fehl.

Das Microsoft Agent-Steuerelement lädt kein Zeichenobjekt (gibt den Verweis frei), wenn die zugehörige Zeichendatei nicht geladen werden kann. Wenn Sie das Laden des Zeichens erneut ausführen möchten, müssen Sie explizit Unload aufrufen, bevor Sie Laden zum zweiten Mal aufrufen. Wenn Sie dies über ein Webseitenskript versuchen, müssen Sie dem Unload-Aufruf auch die Anweisung On Error Resume Next vorangestellt haben, da der Unload-Aufruf ebenfalls fehlschlägt. (Beachten Sie, dass JScript keine On Error Resume Next-Anweisung aufweist.)

Möglicherweise müssen Sie jedoch keinen Code einschließen, um das Laden eines Zeichens sofort erneut zu versuchen, wenn die Datei nicht geladen werden kann. Microsoft Internet Explorer und die Microsoft Agent-Serverkomponente versuchen automatisch, es mehrmals zu wiederholen, sodass die Wahrscheinlichkeit, dass Ihre Wiederholung zu einer erfolgreichen Auslastung führt, remote ist. Eine bessere Strategie besteht darin, einige Sekunden zu warten (einen Timer festzulegen), bevor Sie es erneut versuchen.

Wie kann ich Microsoft Agent als Teil meiner Anwendung oder von meinem Webserver installieren?

Sie können den Agent von der Microsoft-Website installieren, indem Sie dessen CLSID in ein HTML Object-Tag einfügen. Wenn Sie den Agent jedoch aus Ihrem eigenen Anwendungsinstallationsprogramm oder ihrem eigenen Server einschließen und installieren möchten, müssen Sie die Selbstinstallationsdatei des Microsoft-Agents herunterladen, indem Sie sie von der Seite Downloads herunterladen. Wählen Sie beim Herunterladen die Option Speichern statt Ausführen des Browsers aus. Wenn diese Datei ausgeführt wird, installiert sie automatisch Microsoft Agent auf dem Zielcomputer. Daher können Sie die Datei in Ihrem Installationsskript angeben.

Versuchen Sie nicht, Microsoft Agent zu installieren, indem Sie die verschiedenen kopieren. DLLs und der Versuch, sie selbst zu registrieren. Der Versuch, den Agent auf andere Weise zu installieren und dann die selbstinstallierende Kabinettdatei auszuführen, wird nicht unterstützt.

Das Zielsystem muss auch aktuelle Versionen von MSVCRT.DLL (VC++-Runtime), REGSVR32.EXE (Registrierungstool im Lieferumfang von Microsoft VC++) und COM enthalten. Die beste Möglichkeit, um sicherzustellen, dass die richtigen Versionen installiert sind, besteht darin, dass Microsoft Internet Explorer 3.02 oder höher installiert ist. Sie können diese Laufzeitanforderungen jedoch auch lizenzieren. (Für die neueste Version von COM greifen Sie auf die Microsoft-Website auf das DCOM-Update zu.)

Microsoft Agent 2.0 wird nicht unter Microsoft Windows 2000 installiert, da diese Version des Betriebssystems bereits den Agent enthält.

Kann ich den Visual Basic-Setup-Assistenten verwenden, um Microsoft Agent zu installieren?

Sie können zwar ihr eigenes Installationsprogramm mithilfe von Visual Basic -Code (VB) erstellen, sie können hierfür jedoch nicht den Visual Basic-Setup-Assistenten verwenden. Um den Agent von VB zu installieren, können Sie den Shell-Befehl verwenden und die Selbstinstallationsdatei des Microsoft-Agents angeben.

Gewusst wie Microsoft Agent unter Windows 2000 installieren?

Microsoft Agent 2.0 wird nicht unter Windows 2000 installiert, da er bereits als Teil des Betriebssystems enthalten ist.

AgentSvr stürzt ab, wenn Speak mit einer WAV-Datei aufgerufen wird.

Dies kann dazu führen, wenn das Zeichen TTS für die gesprochene Ausgabe verwendet hat, und sich dann ändert, um eine WAV-Datei zu verwenden. Text wurde im ersten Parameter der Speak-Methode nicht angegeben.

Um den Absturz zu vermeiden, fügen Sie ein Leerzeichen in den ersten Parameter der Speak-Methode ein, auch wenn keine Textausgabe vorhanden ist.

Obwohl ich die Agent Language Component (DLL) bereits für eine bestimmte Sprache installiert habe, habe ich immer noch einen Fehler erhalten, dass die Komponente fehlt, wenn ich die Sprache des Zeichens auf diese Sprache feststelle.

Dies geschieht in der Regel, wenn Sie agent-Anwendungen wie Microsoft Office 2000 geöffnet haben, wenn Sie die Agent-Sprachkomponente installieren. Schließen Sie alle Anwendungen, und versuchen Sie es erneut. Wenn das Problem weiterhin besteht, starten Sie Ihren Computer neu, und Sie sollten jetzt in der Lage sein, die Sprach-ID festzulegen.

Wenn ich das amper- und "&"-Symbol verwende, wird der Text um das Symbol in den Wortballons des Zeichens abgeschnitten.

Dieses Problem ist bekannt. Sie können dies umgehen, indem Sie das Map-Tag verwenden. Um beispielsweise "A & B" im Wortballon des Zeichens anzuzeigen, verwenden Sie "A \map="und"="\"&&\ B" in der Speak-Anweisung.

Meine Anwendung ermöglicht es Benutzern, das Standardzeichen zu ändern, und wenn sie dies tun, stürzt das Programm ab.

Es gibt zwei mögliche Ursachen:

Wenn Sie die TTS-Modus-ID des Standardzeichens ändern und dem Benutzer dann erlauben, das Standardzeichen über ShowDefaultCharacterProperties zu ändern, stürzt AgentSvr ab.

Dieses Problem wurde in den Betriebssystemen Windows 2000 und Windows XP behoben. Um den Absturz auf anderen Plattformen zu vermeiden, sollten Sie entweder nicht zulassen, dass der Benutzer das Standardzeichen ändert, nachdem Sie die TTS-Modus-ID des Standardzeichens geändert haben, oder das Standardzeichen nicht in Ihrer Anwendung oder Webseite verwenden.

Wenn Ihre Anwendung keine von Microsoft bereitgestellten Agentzeichen verwendet, stellen Sie sicher, dass Ihr angepasstes Zeichen eine Palette mit einer vollständigen Palette von 256 Farben verwendet. Weitere Informationen finden Sie im Dokument Entwerfen von Zeichen für Den Microsoft-Agent.

Meine Seite lädt das Agent-Zeichen aus mehreren Frames. Bei IE 5 erhalte ich einen Fehler beim Laden des Microsoft-Agents.

Dies ist ein bekanntes Problem mit IE 5. Es wurde eine Änderung in der Verarbeitung eines bestimmten Ereignisses durch den Browser vorgenommen, wodurch das HTML-Skript ausgeführt wird, bevor AgentSvr gestartet wird. Damit Ihre Seite mit allen Versionen des Browsers funktioniert, müssen Sie Diese Zeile zu Ihrem Skript hinzufügen:

AgentControl.Connected = True

die explizit eine Verbindung mit dem AgentSvr herstellt. Beachten Sie, dass Sie dies nur tun müssen, wenn Ihre Seite den Agent aus mehreren Frames lädt.

Wenn meine Anwendung versucht, Microsoft Agent unter Windows 2000 (oder Windows XP) zu installieren, erhalte ich die Fehlermeldung, dass der Agent nicht mit Windows 2000 (oder Windows XP) kompatibel ist.

Eine frühere Version der Agent Core-Komponentenschrankdatei MSAGENT.exe, wenn sie unter Windows 2000 (und Windows XP) ausgeführt wird, blockiert die Installation und zeigt eine ungenaue Fehlermeldung an, dass der Agent nicht mit der Version des betriebssystems kompatibel ist, das Sie ausführen. In der Tat sind Microsoft Agent 2.0-Kernkomponenten als Teil von Windows 2000 (und Windows XP) enthalten und werden bereits standardmäßig über das Windows-Setup installiert.

In dieser Version wird die Überprüfung entfernt, und die Installationsdatei zeigt die oben genannte Fehlermeldung unter Windows 2000 (oder Windows XP) nicht an. Beachten Sie, dass dies die einzige Änderung an der Installationsdatei ist und es keine Codeänderungen an den Agent-Kernkomponenten selbst gibt. Daher sind Sie von diesem Update nicht betroffen, wenn Agent 2.0 bereits installiert ist oder Wenn Ihre Website ein Objekttag verwendet, um automatische Downloads der Agent-Kernkomponenten aus dem Microsoft Object Store auszulösen.

Wenn Sie die Installationsdatei der Agent Core-Komponente in Ihre Anwendung einschließen oder die Installationsdatei auf Ihrem Server veröffentlichen, können Sie dieses Update herunterladen. Klicken Sie hierzu hier, und wählen Sie die Option "Dieses Programm auf Datenträger speichern" aus. Für diese Umstände benötigen Sie eine gültige und aktuelle Agent-Verteilungslizenz.

Alternativ können Sie dieses Problem auch umgehen, indem Sie bei der Installation der vorherigen Version der MSAGENT.exe Installationsdatei die option "Silent" verwenden. Der Shellbefehl lautet:

MSAGENT.exe /q:a

Gleiches gilt für die Komponenten der Agent-Sprache, die ursprünglich im Oktober 1998 veröffentlicht wurden. Es wurde eine Überprüfung durchgeführt, die die Installation der Sprachkomponenten Arabisch, Französisch, Deutsch, Hebräisch, Italienisch, Japanisch, Koreanisch, Vereinfachtes Chinesisch, Spanisch und Traditionelles Chinesisch unter Windows 2000 (und Windows XP) verhindern würde. Die neueren Versionen dieser Installationsdateien sowie die zusätzlichen 19 Sprachen, die im März 2000 hinzugefügt wurden, enthalten diese Überprüfung nicht und werden unter Windows 2000 (und Windows XP) erfolgreich installiert.

Mein angepasstes Zeichen zeigt ein unerwartetes Verhalten mit seiner Transparenzfarbe unter Windows 2000 (und Windows XP).

Dies ist ein bekanntes Problem für Zeichen, die mit einer Palette von weniger als 256 Farben erstellt wurden. Probleme mit diesen Zeichen sind die Im Hintergrund angezeigte Transparenzfarbe, transparenter Ballontext, transparenter Ballonrahmen oder transparenter Ballonhintergrund. Beachten Sie, dass solche Zeichen dazu führen können, dass Ihre Anwendungen abstürzen, wenn sie im Dialogfeld "Agent-Zeichenauswahl" oder im Microsoft Office-Assistenten-Katalog geladen werden. Ihre angepassten Zeichen müssen eine vollständige Palette mit 256 Farben verwenden. Sie können die Für Office-Assistenten-Zeichen bereitgestellte Beispielpalette als Ausgangspunkt mit einer vollständigen 256-Farbpalette verwenden.

Das Zeichen verwendet nicht die britisch-englische TTS-Engine, obwohl ich seine Sprach-ID auf British English &h0809 festgelegt habe.

Stellen Sie zunächst sicher, dass alle erforderlichen Komponenten installiert sind: Agent-Kernkomponenten, die SAPI-Runtime-Binärdateien und eine SAPI4-kompatible britische TTS-Engine wie die TTS3000 British English Engine, die auf der Seite "Agent-Downloads" zum Download zur Verfügung steht. Wenn Ihr Charakter immer noch nicht die britische englische TTS-Engine verwendet, haben Sie wahrscheinlich auch eine amerikanische englische TTS-Engine installiert. Da sowohl britisches als auch amerikanisches Englisch dieselbe Primäre Sprache (Englisch) und amerikanisches Englisch die Standardeinstellung ist, wählt der Agent die erste verfügbare amerikanische Englische TTS-Engine aus, die von SAPI zurückgegeben wird. Verwenden Sie stattdessen die TTS-Eigenschaft des Zeichens, um eine britische englische TTS-Engine zu verwenden. Beispielsweise ist die TTSModeID für die ttS3000 British English male voice {227A0E41-A92A-11d1-B17B-0020AFED142E}. In Microsoft Visual Basic können Sie diese Engine verwenden, indem Sie Merlins TTSModeID wie folgt festlegen:

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

Wenn das Volume des Zeichens mithilfe des Sprachtags \Vol=0\ auf Null festgelegt wird, hat es entweder keine Auswirkungen oder stürzt den AgentSvr ab.

Dies ist ein bekanntes Problem. Unter Den Betriebssystemen Windows 95, Windows 98 und Windows Me ändert sich die Lautstärke des Zeichens nicht, sondern bleibt auf der zuvor festgelegten Ebene. Auf Windows NT 4.0-, Windows 2000- und Windows XP-Plattformen führt dies zum Absturz von AgentSvr, auch wenn keine TTS-Engine installiert ist. Da der Bereich der Lautstärke des Zeichens von 0 (Stille) bis 65535 (maximale Lautstärke) groß ist und der Unterschied zwischen aufeinanderfolgenden Ebenen kaum erkennbar ist, besteht die einfache Problemumgehung darin, die Lautstärke auf 1 statt auf 0 festzulegen, wenn die Stimme des Charakters unhörbar sein soll.

Die Return-Animation meines benutzerdefinierten Charakters wird nach den Animationen MoveDown, MoveLeft, MoveRight und/oder MoveUp nicht ordnungsgemäß wiedergegeben.

Stellen Sie sicher, dass dem sprechenden Staat eine einfache Animation zugewiesen ist. Sie können beispielsweise einen einzelnen Frame verwenden, der aus der neutralen Position des Zeichens mit Mundüberlagerungen besteht.