Condividi tramite


Domande frequenti sulla programmazione di scripting

[Microsoft Agent è deprecato a partire da Windows 7 e potrebbe non essere disponibile nelle versioni successive di Windows.]

Quando si usa Microsoft Visual Basic (o altri strumenti di sviluppo) per lo scripting di Microsoft Agent, non vengono visualizzate tutte le proprietà e gli eventi usati negli esempi. Ricerca per categorie accedervi?

La maggior parte degli eventi, dei metodi e delle proprietà supportate dal controllo Microsoft Agent viene esposta solo in fase di esecuzione. Per altre informazioni, vedere Programmazione del controllo di Microsoft Agent.

Il tag Map (o un altro tag) non sembra funzionare.

Alcuni tag includono stringhe tra virgolette. Per alcuni linguaggi di programmazione, ad esempio Microsoft Visual Basic e Visual Basic Scripting Edition, potrebbe essere necessario utilizzare due virgolette per designare il parametro del tag o concatenare un carattere tra virgolette doppie come parte della stringa. Quest'ultimo è illustrato in questo esempio di Visual Basic:

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

Per la programmazione C, C++e Java, precedere le barre rovesciata e le virgolette doppie con una barra rovesciata. Ad esempio:

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

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

Nota

Microsoft Agent non supporta tutti i tag specificati nell'API Riconoscimento vocale Microsoft. Inoltre, il supporto per alcuni parametri può dipendere dal motore di sintesi vocale installato. Per altre informazioni, vedere Tag di output voce di Microsoft Agent.

 

Non si ottengono gli eventi RequestStart e RequestComplete nello script (o nel programma).

Ciò potrebbe essere causato da uno dei problemi seguenti:

  • Il linguaggio di programmazione non supporta completamente i controlli ActiveX. Controllare la documentazione per assicurarsi che supporti l'interfaccia e gli eventi ActiveX per gli oggetti ActiveX.
  • In una pagina Web con script un altro controllo non è riuscito a installare o caricare. Verificare che tutti gli altri controlli siano installati e caricati correttamente senza Microsoft Agent.
  • In una pagina Web con script con frame è presente il <OBJECT> tag per il controllo Microsoft Agent in una pagina e gli eventi inseriti in script in un'altra pagina. Gli eventi vengono inviati solo alla pagina che ospita il controllo .

Si usa il controllo Microsoft Agent con altri controlli ActiveX nella pagina Web e non si verificano eventi.

Verificare se gli altri controlli sono installati correttamente. Se un altro controllo ActiveX non riesce a registrarsi correttamente, il controllo Microsoft Agent potrebbe ricevere i relativi eventi.

Quali linguaggi di programmazione è possibile usare per programmare il controllo Microsoft Agent?

Microsoft Agent deve essere supportato da qualsiasi linguaggio che supporti l'interfaccia ActiveX. Include esempi di codice per Visual Basic, VBScript, JScript, C/C++e Java.

È possibile accedere ai parametri restituiti da Microsoft Agent usando JScript?

Sì, ma attualmente l'unico modo per eseguire questa operazione consiste nell'usare la <SCRIPT LANGUAGE="JScript" FOR="*object*" EVENT="event()"> sintassi . Sebbene questa sintassi sia supportata per Microsoft Internet Explorer, altri browser non lo supportano, pertanto è consigliabile evitare di usare JScript per questa parte dello script della pagina.

Microsoft Agent può essere usato con motori di riconoscimento vocale o sintesi vocale (sintesi vocale o TTS) diversi da quelli forniti da Microsoft?

Sì, purché il motore supporti le interfacce di Microsoft Speech API (SAPI) 4.0 richieste da Microsoft Agent. Rivolgersi al fornitore del motore. Per informazioni dettagliate sulle interfacce SAPI richieste da Microsoft Agent, vedere Requisiti di supporto del motore di riconoscimento vocale.

La pagina include tag di oggetto HTML per Microsoft Agent, il motore TruVoice TTS di Lernout & Frameworkpie e il motore di riconoscimento vocale di Microsoft Command and Control, ma non tutti i componenti installati.

In genere, il problema può essere corretto aggiornando la pagina. Come procedura generale, è consigliabile specificare prima il tag Controllo <OBJECT> agente Microsoft, quindi il motore TruVoice Lernout & Frameworkpie, quindi il motore di riconoscimento vocale Comando e controllo.

Dopo aver chiamato il metodo MoveTo, il mio personaggio sembra bloccarsi anche se ho animazioni Return assegnate alle animazioni di stato spostamento.

Quando si riproduce un'animazione, i servizi di animazione continuano a visualizzarne l'ultimo fotogramma finché non viene chiamata un'altra animazione. Pertanto, dovresti riprodurre un'altra animazione dopo aver chiamato MoveTo. Se è stata definita un'animazione Return per l'animazione Sposta stato, il server lo eseguirà per primo.

Quando si esegue una query sulla proprietà Pitch del carattere, viene restituito il valore -1.

Ciò si verifica se il carattere è stato compilato usando la proprietà predefinita pitch di un motore di riconoscimento vocale; ovvero, il passo non è stato modificato quando è stato costruito il personaggio.

Quando il codice tenta di impostare l'ID modalità TTS per un motore di sintesi vocale, viene visualizzato l'errore seguente: Non è possibile eseguire una chiamata in uscita perché l'applicazione invia una chiamata sincrona di input.

Per impostare la proprietà TTSModeID, è necessario che Speech.dll sia installato. Si tratta in genere di una parte del codice di installazione del motore di riconoscimento vocale. È anche possibile installarlo installando il pannello di controllo dell'oggetto Voce, disponibile nella pagina Download di Microsoft Agent.

Quando si ritenta il caricamento di un carattere che non è stato possibile caricare, la chiamata ha esito negativo e viene visualizzato un errore "Character already loaded".

Il controllo Microsoft Agent non scarica un oggetto carattere (rilascia il riferimento) quando il file di caratteri associato non viene caricato. Se si vuole riprovare a caricare il carattere, è necessario chiamare in modo esplicito Scarica prima di chiamare Carica la seconda volta. Se si tenta di eseguire questa operazione da uno script della pagina Web, è anche necessario precedere la chiamata Scarica con un'istruzione On Error Resume Next oppure la chiamata Scarica non riuscirà. Si noti che JScript non ha un'istruzione On Error Resume Next.

Tuttavia, potrebbe non essere necessario includere il codice per ritentare immediatamente il caricamento di un carattere quando il file non viene caricato. Microsoft Internet Explorer e il componente server di Microsoft Agent tentano automaticamente di riprovare più volte, quindi le probabilità che i tentativi provocheranno un caricamento riuscito siano remoti. Una strategia migliore consiste nell'attendere (impostare un timer) alcuni secondi prima di riprovare.

Come è possibile installare Microsoft Agent come parte dell'applicazione o dal server Web?

È possibile installare Agent dal sito Web Microsoft includendo il relativo CLSID in un tag Object HTML. Tuttavia, se si vuole includere e installare Agent dal programma di installazione dell'applicazione o dal proprio server, è necessario scaricare il file CAB autoinstallante di Microsoft Agent, scaricandolo dalla pagina Download. Quando si scarica, scegliere l'opzione Salva del browser anziché Esegui. Ogni volta che questo file viene eseguito, verrà installato automaticamente Microsoft Agent nel computer di destinazione. È quindi possibile specificare il file nello script di installazione.

Non tentare di installare Microsoft Agent copiandone i vari . DLL e tentativo di registrarlo manualmente. Il tentativo di installare Agent con qualsiasi altro mezzo significa che l'esecuzione del file CAB autoinstallato non è supportata.

Il sistema di destinazione deve includere anche versioni recenti di MSVCRT.DLL (runtime VC++), REGSVR32.EXE (strumento di registrazione incluso in Microsoft VC++) e COM. Il modo migliore per assicurarsi che siano installate le versioni corrette è richiedere l'installazione di Microsoft Internet Explorer 3.02 o versione successiva. Tuttavia, è anche possibile concedere in licenza questi requisiti di runtime. Per la versione più recente di COM, accedere all'aggiornamento DCOM dal sito Web Microsoft.

Microsoft Agent 2.0 non verrà installato in Microsoft Windows 2000 perché questa versione del sistema operativo include già Agent.

È possibile usare l'Installazione guidata di Visual Basic per installare Microsoft Agent?

Anche se è possibile creare un programma di installazione personalizzato usando codice Visual Basic (VB) non è possibile utilizzare l'Installazione guidata di Visual Basic per eseguire questa operazione. Per installare Agent da VB, è possibile usare il comando Shell, specificando il file CAB autoinstallato di Microsoft Agent.

Ricerca per categorie installare Microsoft Agent in Windows 2000?

Microsoft Agent 2.0 non viene installato in Windows 2000 perché è già incluso come parte del sistema operativo.

AgentSvr si arresta in modo anomalo quando Speak viene chiamato con un file WAV.

Ciò può comportare l'uso del carattere TTS per l'output parlato, quindi le modifiche per l'uso di un file WAV. Il testo non è stato specificato nel primo parametro del metodo Speak.

Per evitare l'arresto anomalo, includere uno spazio nel primo parametro del metodo Speak, anche se non è disponibile alcun output di testo.

Anche se è già stato installato il componente del linguaggio dell'agente (DLL) per una determinata lingua, si è comunque verificato un errore che indica che il componente manca quando si imposta la lingua del carattere su tale lingua.

Questo problema si verifica in genere quando si dispone di applicazioni Agent come Microsoft Office 2000 aperte quando si installa il componente lingua di Agent. Chiudere tutte le applicazioni e riprovare. Se il problema persiste, riavviare il computer e dovrebbe essere possibile impostare l'ID lingua ora.

Quando uso il simbolo "&" della e commerciale, il testo intorno al simbolo nelle palloncini delle parole del carattere viene troncato.

Questo è un problema noto È possibile risolvere questo problema usando il tag della mappa. Ad esempio, per visualizzare "A & B" nel fumetto delle parole del carattere, usare "A \map="and"="&&"\ B" nell'istruzione Speak.

L'applicazione consente agli utenti di modificare il carattere predefinito e, quando lo fanno, il programma si arresta in modo anomalo.

Le cause possono essere due:

Se si modifica l'ID modalità TTS del carattere predefinito e quindi si consente all'utente di modificare il carattere predefinito tramite ShowDefaultCharacterProperties, AgentSvr si arresterà in modo anomalo.

Questo problema è stato risolto nei sistemi operativi Windows 2000 e Windows XP. Per evitare l'arresto anomalo in altre piattaforme, non è consigliabile consentire all'utente di modificare il carattere predefinito dopo aver modificato l'ID modalità TTS del carattere predefinito oppure non usare il carattere predefinito nell'applicazione o nella pagina Web.

Se l'applicazione non usa i caratteri di Agent forniti da Microsoft, assicurarsi che il carattere personalizzato usi una tavolozza con una tavolozza completa di 256 colori. Per altre informazioni, vedere il documento Progettazione di caratteri per Microsoft Agent.

La mia pagina carica il carattere Agent da più fotogrammi. Con Internet Explorer 5, viene visualizzato l'errore di caricamento di Microsoft Agent.

Si tratta di un problema noto con Internet Explorer 5. È stata apportata una modifica al modo in cui il browser gestisce un determinato evento, causando l'avvio dello script HTML prima dell'avvio di AgentSvr. Per fare in modo che la pagina funzioni con tutte le versioni del browser, è necessario aggiungere questa riga allo script:

AgentControl. Connessione ed = True

che crea in modo esplicito una connessione a AgentSvr. Si noti che è necessario eseguire questa operazione solo se la pagina carica Agent da più frame.

Quando l'applicazione tenta di installare Microsoft Agent in Windows 2000 (o Windows XP), viene visualizzato l'errore che Agent non è compatibile con Windows 2000 (o Windows XP).

Una versione precedente del file CAB del componente principale di Agent MSAGENT.exe, quando viene eseguita in Windows 2000 (e Windows XP), blocca l'installazione e visualizza un messaggio di errore impreciso che Agent non è compatibile con la versione del sistema operativo in esecuzione. Infatti, i componenti principali di Microsoft Agent 2.0 sono inclusi come parte di Windows 2000 (e Windows XP) e sono già installati per impostazione predefinita tramite l'installazione di Windows.

In questa versione, il controllo viene rimosso e il file di installazione non visualizzerà il messaggio di errore indicato in Windows 2000 (o Windows XP). Si noti che si tratta dell'unica modifica apportata al file di installazione e non sono state apportate modifiche al codice ai componenti principali di Agent stessi. Pertanto, non si è interessati da questo aggiornamento se è già installato Agent 2.0 o se il sito Web usa un tag oggetto per attivare i download automatici dei componenti principali di Agent da Microsoft Object Store.

Se si include il file di installazione dei componenti di base di Agent con l'applicazione o se si pubblica il file di installazione nel server, è possibile scaricare questo aggiornamento. A tale scopo, fare clic qui e selezionare l'opzione "Salva il programma su disco". Per queste circostanze, è necessario disporre di una licenza di distribuzione valida e corrente dell'agente.

In alternativa, è anche possibile risolvere questo problema usando l'opzione invisibile all'utente durante l'installazione della versione precedente del file di installazione MSAGENT.exe. Il comando shell è:

MSAGENT.exe /q:a

Lo stesso vale per i componenti del linguaggio di Agent rilasciati originariamente nell'ottobre 1998. C'era un controllo che impediva ai componenti arabo, francese, tedesco, ebraico, italiano, giapponese, coreano, cinese semplificato, spagnolo e cinese tradizionale di installare in Windows 2000 (e Windows XP). Le versioni più recenti di questi file di installazione, insieme alle altre 19 lingue aggiunte nel marzo 2000, non contengono questo controllo e verranno installate correttamente in Windows 2000 (e Windows XP).

Il mio carattere personalizzato presenta un comportamento imprevisto con il suo colore di trasparenza in Windows 2000 (e Windows XP).

Si tratta di un problema noto per i caratteri creati con una tavolozza di meno di 256 colori. I problemi relativi a questi caratteri includono il colore di trasparenza visualizzato sullo sfondo, il testo del fumetto trasparente, il bordo palloncino trasparente o lo sfondo di palloncini trasparenti. Si noti che tali caratteri possono causare l'arresto anomalo delle applicazioni durante il caricamento nella finestra di dialogo Selezione caratteri agente o nella raccolta assistente di Microsoft Office. I caratteri personalizzati devono usare una tavolozza completa con 256 colori. È possibile usare la tavolozza di esempio fornita per i caratteri di Assistente di Office come punto di partenza con una tavolozza dei colori completa di 256.

Il carattere non usa il motore inglese inglese britannico TTS anche se ho impostato il relativo ID lingua su inglese britannico &h0809.

Assicurarsi prima di tutto di avere tutti i componenti necessari installati, ovvero i componenti di base di Agent, i file binari del runtime SAPI e un motore TTS inglese inglese conforme a SAPI4, ad esempio il motore inglese britannico TTS3000, disponibile per il download nella pagina Download di Agent. Se il tuo personaggio non usa ancora il motore TTS inglese britannico, è probabile che sia installato anche un motore TTS inglese americano. Poiché sia l'inglese britannico che l'inglese americano condividono la stessa lingua primaria (inglese) e inglese americano è l'impostazione predefinita, Agent sceglierà il primo motore TTS inglese americano disponibile come restituito da SAPI. Per usare un motore TTS inglese britannico, utilizzare invece la proprietà TTSModeID del carattere. Ad esempio, TTSModeID per la voce inglese inglese TTS3000 è {227A0E41-A92A-11d1-B17B-0020AFED142E}. In Microsoft Visual Basic è possibile usare questo motore impostando TTSModeID di Merlin come indicato di seguito:

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

Quando il volume del carattere è impostato su zero usando il tag vocale \Vol=0\, non ha effetti o arresta in modo anomalo AgentSvr.

Si tratta di un problema noto. Nei sistemi operativi Windows 95, Windows 98 e Windows Me, il volume del carattere non cambia ma rimarrà al livello impostato in precedenza. Nelle piattaforme Windows NT 4.0, Windows 2000 e Windows XP, AgentSvr si arresta in modo anomalo, anche quando non è installato un motore TTS. Poiché l'intervallo del volume del carattere, da 0 (silenzio) a 65535 (volume massimo), è grande e la differenza tra i livelli successivi è difficilmente rilevabile, la soluzione alternativa semplice consiste nell'impostare il volume su 1 anziché su 0 quando si vuole che la voce del personaggio sia inaudibile.

L'animazione Return del personaggio personalizzato non viene riprodotta correttamente dopo le animazioni MoveDown, MoveLeft, MoveRight e/o MoveUp.

Assicurarsi che un'animazione di pronuncia semplice sia assegnata allo stato di pronuncia. Ad esempio, è possibile usare un singolo fotogramma costituito dalla posizione neutra del carattere con sovrapposizioni della bocca.