Condividi tramite


Abilitazione della correzione del testo per gli agenti di raccolta input penna personalizzati

Il pannello di input di Microsoft Tablet PC è uno strumento potente per l'immissione di testo scritto a mano con una penna e la correzione del testo senza l'uso di una tastiera. Quando si usa il pannello di input, un utente immette il testo scrivendo sulle superfici di input del pannello di input, che causa il riconoscimento della scrittura dell'utente come testo. Dopo aver riconosciuto il testo, l'utente tocca Inserisci nel pannello di input per inserire il testo in un'applicazione o in un documento. Prima di inserire il testo, un utente può accedere a un set di strumenti di correzione nel pannello di input. Queste includono la selezione di un risultato di riconoscimento alternativo, la possibilità di riscrivere un singolo carattere o anche di riscrivere l'intera parola e riscrivere. Questi strumenti di correzione consentono a un utente di correggere sia gli errori di riconoscimento che gli errori umani.

Dopo aver immesso il testo usando il pannello di input nel documento, gli utenti hanno accesso alla stessa funzionalità di correzione disponibile prima dell'inserimento nelle applicazioni basate su Servizi di testo di Windows e servizi di testo abilitate. A partire da Microsoft Windows XP Service Pack 2 Tablet PC Edition tutte le applicazioni rich Edit sono abilitate per impostazione predefinita per servizi di testo e a partire da Windows Vista, le applicazioni HTML sono abilitate per impostazione predefinita. La correzione in documento è disponibile solo nelle applicazioni basate sul servizio di testo e abilitate; ciò è dovuto al fatto che il pannello di input dipende dalla capacità del servizio testo di archiviare le proprietà di testo associate, inclusi oggetti penna e alternative di riconoscimento, per fornire una correzione in-documento.

pannello di input del pc tablet con correzione del testo

Esistono tuttavia numerosi scenari, tra cui la correzione del riconoscimento vocale o la correzione del testo digitato nel passaggio, che non iniziano con la voce di testo usando il pannello di input, ma in cui la correzione in-documento può essere estremamente utile per gli utenti di Tablet PC. Un esempio principale è nelle applicazioni che forniscono superfici di input penna personalizzate per l'immissione di testo usando una penna. Le superfici di input penna personalizzate sono un ottimo modo per le applicazioni per offrire funzionalità personalizzate in modo univoco specifiche per le attività di immissione del testo di ogni applicazione. Inoltre, le superfici di input penna personalizzate offrono un'esperienza utente di Tablet PC completamente integrata, che rende chiara la penna è un dispositivo di input di prima classe nelle applicazioni che li contengono. Tuttavia, le applicazioni che forniscono superfici di input penna personalizzate potrebbero non consentire o non essere in grado di fornire lo stesso livello di supporto di correzione disponibile dal pannello di input in-document correzione.

agente di raccolta input penna personalizzato

Le applicazioni basate su Servizi di testo o abilitate in cui la correzione in-documento è utile per la correzione del testo non immesso usando il pannello di input è in grado di usare l'API IHandWrittenTextInsertion (classe Microsoft.TextInput.Hand writeTextInsertion nel codice gestito) per abilitare la correzione in-document per il testo immesso con altri mezzi. In questo modo, le applicazioni possono aggiungere un potente supporto per la correzione alle superfici di input penna personalizzate o ad altri scenari di voce di testo e completare la storia della voce di testo tablet PC. L'API IHandWrittenTextInsertion del pannello di input è inclusa nell'ambito del sistema operativo Windows Vista e come parte dell'SDK della piattaforma Tablet versione 1.9 o successiva. Sono incluse sia una versione basata su .NET che com dell'API. L'abilitazione della correzione nel documento per il testo non immesso tramite il pannello di input è supportata in Windows Vista e versioni successive. La correzione in documento è disponibile solo per le lingue latine e non è in grado di visualizzare qualsiasi carattere all'esterno del set di caratteri latini.

Come usare l'API Hand writeTextInsertion in un'applicazione

Le modifiche necessarie a un'applicazione per integrare la correzione del pannello di input per il testo non immesso tramite il pannello di input e l'uso dell'API IHand WriteTextInsertion sono semplici. Tutto il codice di voce di testo personalizzato dell'applicazione rimane invariato, ad eccezione dell'ultimo passaggio. Al punto in cui il testo immesso usando una superficie di input penna personalizzata, il riconoscimento vocale o altri mezzi devono essere visualizzati in un campo di testo abilitato per i servizi di testo, l'applicazione invia il testo all'interfaccia IHand WriteTextInsertion anziché inviarla direttamente al campo di testo. Il componente programmabilità del pannello di input gestisce quindi l'inserimento del testo nel campo di testo e nell'archivio backup di Servizi di testo. Quando si aggiunge il testo all'archivio di backup di Servizi di testo, il componente programmabilità del pannello di input gestisce l'impostazione delle proprietà di testo richieste dal pannello di input per la correzione in-documento da abilitare per tale testo.

La sezione seguente illustra in dettaglio questo processo per un'applicazione C++ usando la versione COM dell'API IHandWrittenTextInsertion . Esistono note ovunque i passaggi per l'uso della versione di .NET Framework dell'API in C# differiscono per l'uso della versione COM in C++. L'API Hand writeTextInsertion gestita include un'unica interfaccia COM, IHand writeTextInsertion. La definizione per questa interfaccia si trova in PenInputPanel.h e PenInputPanel_i.c.

Prima di tutto, l'applicazione deve usare la funzione CoCreateInstance per produrre un'istanza di IHandWrittenTextInsertion con id classe CLSID_HandwrittenTextInsertion. Si noti che la creazione di un oggetto CLSID_HandwrittenTextInsertion avrà esito positivo solo dopo la creazione di una finestra e lo stato attivo, perché fino a quando non viene attivato l'archivio di backup di Servizi di testo. Inoltre, se tiptsf.dll non è presente nel sistema, la funzione CoCreateInstance ha esito negativo e restituisce REGDB_E_CLASSNOTREG, indicando che la correzione del pannello di input nel documento non è supportata nel sistema. A questo punto l'applicazione deve procedere senza tentare di abilitare la correzione del pannello di input in-document. L'istanza di Hand writeTextInsertion deve essere accessibile dal codice dell'applicazione che gestisce l'inserimento di testo in un campo di testo.

Nota

Quando si usa la versione di .NET Framework dell'API, l'applicazione deve aggiungere un'istruzione using per consentire l'accesso allo spazio dei nomi Microsoft.Ink.TextInput e quindi creare direttamente l'oggetto.

 

In secondo luogo, il codice dell'applicazione responsabile dell'inserimento del testo in un campo di testo deve essere modificato in modo che non inserisca più testo in un campo di testo direttamente, ma chiama uno o l'altro dei due metodi di inserimento di IHand writeTextInsertion. Se le applicazioni devono scegliere di chiamare InsertRecognitionResultsArray o InsertRecognitionResults dipende dal fatto che l'applicazione disponga dei riconoscimenti alternativi per il testo archiviato come matrice o come oggetto IInkRecognitionResult .

Nota

Quando si lavora nel codice gestito, l'oggetto di riconoscimento corrispondente utilizzato da InsertRecognitionResultsArray è RecognitionResult. Entrambi i metodi usano i tre parametri seguenti:

 

  • Alternative Raccolta bidimensionale di stringhe, archiviata come matrice di matrici o come oggetto IInkRecognitionResult (o RecognitionResult). Se le alternative vengono archiviate come matrice di matrici, deve essere passata come puntatore a matrice sicura. Ogni voce nella matrice di livello superiore è un elenco di alternative per una singola parola nell'inserimento. La voce in corrispondenza della posizione zero nelle sottomatrici di alternative è il testo inserito nel campo di testo. Le alternative aggiuntive (indici da 1 a n in ogni sotto matrice) vengono archiviate nell'archivio di backup di Servizi di testo e offerte all'utente come parte della correzione in-documento. Se le alternative non sono incluse, l'utente visualizza "Nessun suggerimento" al posto dell'elenco di alternative. Se un inserimento contiene più parole con spazi tra di essi, ogni spazio deve essere incluso come voce nella matrice di livello superiore.
  • LinguaLCID del linguaggio di input corrispondente al testo contenuto nel parametro alternativi . Nel caso in cui il contenuto delle alternative sia stato generato da un riconoscimento vocale o di grafia, questa è anche la proprietà Languages associata al riconoscimento vocale usato.
  • fLatticeContainsAutoSpacingInformation Flag che indica se il testo contenuto nel parametro alternativi è stato generato da un riconoscimento con spaziatura automatica abilitata. Se la spaziatura automatica è stata abilitata, il flag deve essere impostato su TRUE. Se la spaziatura automatica è stata disabilitata, il flag deve essere impostato su FALSE. Nel caso in cui il contenuto delle alternative sia stato generato da un riconoscimento che non supporta la spaziatura automatica o non è stato generato da un riconoscimento a tutti, il flag deve essere impostato su FALSE.

Il modello di programmabilità del pannello di input è in grado di inserire il testo nel documento o nell'applicazione dalla posizione del caret di sistema.

Entrambi i metodi restituiscono S_OK se l'inserimento ha esito positivo. Restituisce E_NOINTERFACE se l'applicazione non è basata su Servizi di testo o abilitata e E_INVALIDARG se le alternative sono formattate in modo non corretto o inaccessibile. Possono anche restituire E_OUTOFMEMORY se non è disponibile memoria sufficiente nel sistema o E_FAIL dopo un errore irreversibile, ad esempio Il framework di servizi di testo non è abilitato.

Conclusione

L'abilitazione della correzione del pannello di input per il testo non immesso tramite il pannello di input è un modo economico e semplice per un'applicazione basata su Servizi di testo o abilitata per integrare un metodo di input o input personalizzato con potenti funzionalità di correzione basate su penna. In Windows Vista tutte le applicazioni Rich Edit e Trident sono abilitate per Servizi di testo. Sebbene le superfici di input penna integrato siano un'ottima opzione per aggiungere un'esperienza utente tablet PC personalizzata a un'applicazione, supportano solo la metà della voce di testo se non includono funzionalità di correzione. La correzione in-document fornisce agli utenti l'altra metà della storia aggiungendo la possibilità di scambiare una selezione per un riconoscimento alternativo o di riscrivere parte o tutte le selezioni.

Programmazione del pannello di input di testo