다음을 통해 공유


InkRecognizer.SetAsHighestPriorityInkRecognizer 메서드

업데이트: 2007년 11월

InkAnalyzer 내부의 인식기 순서 지정 목록에서 이 InkRecognizer를 가장 높은 우선 순위로 설정합니다.

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink.Analysis(Microsoft.Ink.Analysis.dll)

구문

‘선언
Public Sub SetAsHighestPriorityInkRecognizer
‘사용 방법
Dim instance As InkRecognizer

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

설명

각 인식기에는 해당 인식기에서 지원하는 언어와 기능을 설명하는 값이 들어 있습니다. InkAnalyzer에서는 사용 가능한 인식기를 순서 지정된 목록에 구성하는 방식으로 두 개 이상의 인식기에서 동일한 언어와 기능을 모두 지원하는 경우 사용할 인식기를 결정할 수 있습니다. 그런 다음 InkAnalyzer에서는 내부의 인식기 순서 지정 목록을 저장하게 됩니다. 내부 순서 지정 목록은 호출될 때마다 동적으로 채워집니다.

참고

레지스트리에 액세스하는 문제로 인해 성능이 느려지는 경우 InkAnalyzer가 만들어질 때만 레지스트리 값을 확인하는 것으로 이를 제한할 수도 있습니다.

내부 목록은 다음과 같은 로직에 따라 정렬됩니다.

  1. “Recognizers Precedence” 레지스트리 키 값을 확인하여 제어판 응용 프로그램에 순서가 지정되어 있는지 확인합니다.

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

    2. 각 인식기는 GUID별로 레지스트리 하위 키로 나열됩니다.

    3. 각 레지스트리에는 0부터 시작하는 순서인 “Order”라는 하나의 dword 값이 지정되어 있습니다(0= 첫 번째로 사용할 인식기, 1= 두 번째로 사용할 인식기… n = 마지막에 사용할 인식기).

    4. “Recognizers Precedence” 키가 없거나 손상된 경우에는 다음 단계로 넘어가면 됩니다.

  2. “System Recognizer” 레지스트리 키를 검토하여 설치된 모든 Microsoft 인식기가 순서 지정 목록에 나타나 있는지 확인합니다. 시스템에는 있지만 순서 지정 목록에 없는 Microsoft 인식기는 해당 목록의 순서에 따라 목록의 끝에 추가됩니다.

  3. “Recognizer” 레지스트리 키를 검토하여 설치된 모든 외부(타사) 인식기가 순서 지정 목록에 나타나 있는지 확인합니다. 시스템에는 있지만 순서 지정 목록에 없는 외부 인식기는 해당 목록의 순서에 따라 목록의 끝에 추가됩니다.

기본 순서가 지정된 후에도 응용 프로그램에서는 이 메서드를 호출하고 인식기를 목록의 맨 위로 승격시켜 기본 순서를 변경하거나 재정의할 수 있습니다.

인식기의 사용은 목록에서 해당 인식기의 순서에 따라 평가됩니다.

  • 파서는 목록의 첫 번째 인식기부터 시작합니다.

  • 인식 중인 잉크의 언어 및 기능을 첫 번째 인식기에서 지원하는지 여부를 확인하기 위해 해당 인식기를 테스트합니다.

  • 지원하는 경우 해당 인식기가 사용됩니다.

  • 지원하지 않는 경우에는 목록의 다음 인식기를 확인합니다. 인식기를 찾거나 목록을 모두 사용할 때까지 목록을 반복합니다.

  • 인식기를 찾지 못하는 경우 TPG_No_Suitable_Recognizer_Found 예외가 반환됩니다.

예제

이 예제에서는 InkAnalyzer 개체에 사용할 수 있는 각 InkRecognizer를 검사합니다. InkRecognizer에서 언어 ID 1031(독일어)을 지원하는 경우 가장 높은 우선 순위의 인식기로 설정됩니다.

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

플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

InkRecognizer 클래스

InkRecognizer 멤버

Microsoft.Ink 네임스페이스