Partager via


InkRecognizer.SetAsHighestPriorityInkRecognizer, méthode

Mise à jour : November 2007

Affecte la priorité plus élevée à ce InkRecognizer dans la liste triée interne InkAnalyzer des modules de reconnaissance.

Espace de noms :  Microsoft.Ink
Assembly :  Microsoft.Ink.Analysis (dans Microsoft.Ink.Analysis.dll)

Syntaxe

'Déclaration
Public Sub SetAsHighestPriorityInkRecognizer
'Utilisation
Dim instance As InkRecognizer

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

Notes

Tous les modules de reconnaissance contiennent des valeurs qui décrivent les langues et les fonctions prises en charge. La liste triée de modules de reconnaissance disponibles permet au InkAnalyzer d'identifier le module de reconnaissance à utiliser si deux modules ou plus prennent en charge les mêmes langues et fonctions. Le InkAnalyzer stockera une liste triée interne des modules de reconnaissance. La liste triée interne sera remplie dynamiquement à chaque fois qu'elle sera appelée.

ms569538.alert_note(fr-fr,VS.90).gifRemarque :

Si les opérations sont lentes en raison de l'accès au registre, il est possible de limiter ce phénomène en ne vérifiant les valeurs du registre qu'à la création du InkAnalyzer.

La liste interne sera triée selon la logique suivante :

  1. Vérifiez que l'application du panneau de configuration a défini un ordre en consultant les valeurs de clé du registre "Recognizers Precedence" :

    1. "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TPG\Recognizers Precedence"

    2. Chaque module de reconnaissance est répertorié comme sous-clé du registre par le GUID.

    3. Chaque sous-clé du registre a une valeur dword appelée "Order", qui est un ordre de base zéro (0 = premier module de reconnaissance à utiliser, 1 = deuxième module de reconnaissance à utiliser... n = dernier module de reconnaissance à utiliser).

    4. Si la clé "Recognizers Precedence" n'existe pas ou est endommagée, passez à l'étape suivante.

  2. Consultez les clés du registre "System Recognizer" pour vérifier si tous les modules de reconnaissance Microsoft installés sont représentés dans la liste triée. Tout module de reconnaissance Microsoft qui se trouve sur le système, mais qui n'est pas inclus dans la liste triée, sera ajouté à la fin de la liste, dans l'ordre des résultats de la recherche.

  3. Consultez les clés du registre "Recognizer" pour vérifier si tous les modules de reconnaissance externes (tiers) installés sont représentés dans la liste triée. Tout module de reconnaissance externe qui se trouve sur le système, mais qui n'est pas inclus dans la liste triée, sera ajouté à la fin de la liste, dans l'ordre des résultats de la recherche.

Une fois que le classement par défaut est effectué, les applications peuvent modifier ou remplacer le classement par défaut en appelant cette méthode et en plaçant un module de reconnaissance en haut de la liste.

L'utilisation des modules de reconnaissance sera évaluée selon leur ordre dans la liste :

  • L'analyseur commencera par le premier module de reconnaissance de la liste.

  • Le premier module de reconnaissance sera testé pour savoir s'il prend en charge la langue et les fonctions de l'entrée manuscrite en cours de reconnaissance.

  • Si c'est le cas, le module de reconnaissance est utilisé.

  • Sinon, le module de reconnaissance suivant dans la liste est testé. L'itération de la liste se poursuit jusqu'à ce qu'un module de reconnaissance soit compatible ou jusqu'à la fin de la liste.

  • Si aucun module de reconnaissance n'est compatible, l'exception TPG_No_Suitable_Recognizer_Found est retournée.

Exemples

Dans cet exemple, chaque InkRecognizer disponible pour un objet InkAnalyzer est examiné. Si le InkRecognizer prend en charge l'ID de langue 1031 (allemand), il est défini comme module de reconnaissance prioritaire.

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();
        }
    }
}

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

InkRecognizer, classe

Membres InkRecognizer

Microsoft.Ink, espace de noms