この InkRecognizer を、認識エンジンの InkAnalyzer 内部順序付きリストで最も高い優先順位に設定します。
名前空間 : 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 が作成されたときにのみレジストリ値の確認を行うように制限できます。 |
内部リストの順序付けは、次のロジックに基づいて決定されます。
"Recognizers Precedence" レジストリ キーの値を調べることにより、コントロール パネル アプリケーションが順序を設定したかどうかを確認します。
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TPG\Recognizers Precedence"
各認識エンジンは、GUID によりレジストリ サブキーとして示されます。
各レジストリ サブキーには "Order" という dword 値があります。この値は、0 から始まる順序付けです (0 = 使用する最初の認識エンジン、1 = 使用する 2 番目の認識エンジン… n = 使用する最後の認識エンジン)。
"Recognizers Precedence" キーが存在しない場合、または破損している場合は、次の手順にスキップします。
"System Recognizer" レジストリ キーを確認することにより、インストールされたすべての Microsoft 認識エンジンが順序付けリストに示されているかどうかを確認します。システムで見つかったが、順序付けリストには含まれていない Microsoft 認識エンジンはすべて、見つかった順序でリストの末尾に追加されます。
"System 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