Compartir a través de


InkRecognizer.SetAsHighestPriorityInkRecognizer (Método)

Actualización: noviembre 2007

Establece este objeto InkRecognizer en la prioridad más alta de la lista ordenada interna de reconocedores InkAnalyzer.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink.Analysis (en Microsoft.Ink.Analysis.dll)

Sintaxis

'Declaración
Public Sub SetAsHighestPriorityInkRecognizer
'Uso
Dim instance As InkRecognizer

instance.SetAsHighestPriorityInkRecognizer()
public void SetAsHighestPriorityInkRecognizer()
public:
void SetAsHighestPriorityInkRecognizer()
public void SetAsHighestPriorityInkRecognizer()
public function SetAsHighestPriorityInkRecognizer()

Comentarios

Cada reconocedor contiene valores que describen los idiomas y las funciones que admite. Si los reconocedores disponibles se organizan en una lista ordenada, el objeto InkAnalyzer puede determinar qué reconocedor va a usar si hay dos o más reconocedores que admiten el mismo idioma y las mismas funciones. InkAnalyzer almacenará una lista ordenada interna de reconocedores. La lista ordenada interna se rellenará de forma dinámica cada vez que se llame.

Nota

Si el rendimiento es lento debido al acceso al Registro, se puede restringir este proceso para que solamente se comprueben los valores del Registro cuando se cree el objeto InkAnalyzer.

La lista interna se ordenará en función de la siguiente lógica:

  1. Compruebe si las aplicaciones del Panel de control han establecido un orden observando los valores de la clave del Registro "Recognizers Precedence":

    1. “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TPG\Recognizers Precedence”

    2. El GUID enumera a cada reconocedor como una subclave del Registro.

    3. Cada subclave del Registro tiene un valor dword denominado "Order", que es un orden basado en cero (0=primer reconocedor que se va a usar, 1 = segundo reconocedor que se va a usar... n = último reconocedor que se va a usar).

    4. Si la clave "Recognizers Precedence" no existe, o está dañada, simplemente vaya al paso siguiente.

  2. Compruebe si todos los reconocedores de Microsoft instalados están representados en la lista ordenada comprobando las claves del Registro "System Recognizer". Todos los reconocedores de Microsoft que se encuentren en el sistema pero que no estén incluidos en la lista ordenada se agregarán al final de la lista, en el orden en que se hayan encontrado.

  3. Compruebe si todos los reconocedores externos (de otros fabricantes) instalados están representados en la lista ordenada comprobando las claves del Registro de "Reconocedor". Todos los reconocedores externos que se encuentren en el sistema pero que no estén incluidos en la lista ordenada se agregarán al final de la lista, en el orden en que se hayan encontrado.

Una vez creado el orden predeterminado, es posible que las aplicaciones lo cambien o lo invaliden llamando a este método y aumentando el nivel de un reconocedor a la parte superior de la lista.

El uso de los reconocedores se evaluará en función de su orden en la lista:

  • El analizador se iniciará con el primer reconocedor de la lista.

  • El primer reconocedor se probará para ver si admite el idioma y las funciones de la entrada manuscrita que se está reconociendo.

  • El reconocedor se usará si es compatible.

  • Si no es compatible se comprobará el siguiente reconocedor de la lista. El recorrido en iteración por la lista continuará hasta que se encuentre un reconocedor o la lista se acabe.

  • Si no se encuentra ningún reconocedor, se devuelve la excepción TPG_No_Suitable_Recognizer_Found.

Ejemplos

En este ejemplo se examinan todos los objetos InkRecognizer que están disponibles para un objeto InkAnalyzer. Si el objeto InkRecognizer admite el identificador de idioma 1031, que corresponde a alemán, se establece como el reconocedor de la prioridad más alta.

Dim allInkRecognizers As InkRecognizerCollection = mInkAnalyzer.GetInkRecognizersByPriority()
For Each IR As InkRecognizer In allInkRecognizers
    For Each langID As Integer In IR.GetLanguages()
        If langID = 1031 Then
            IR.SetAsHighestPriorityInkRecognizer()
        End If
    Next
Next
InkRecognizerCollection allInkRecognizers = mInkAnalyzer.GetInkRecognizersByPriority();
foreach (InkRecognizer IR in allInkRecognizers)
{
    foreach(int langID in IR.GetLanguages()) 
    {
        if (langID == 1031)
        {
            IR.SetAsHighestPriorityInkRecognizer();
        }
    }
}

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

InkRecognizer (Clase)

InkRecognizer (Miembros)

Microsoft.Ink (Espacio de nombres)