まず、背景情報をいくつか...
スレート PC、つまり物理キーボードがない上で実行される C# .NET アプリケーションがあります。Windows XP Tablet Edition に組み込まれているオンスクリーン キーボードを使用して、フォームに TextBox コントロールを設定しています。フォームには特別なキー押下処理はありません (ただし、UI の他のコンポーネントはキー押下を処理します)。
スクリーン キーボードが一部のキー押下の登録を停止することがあります。フォームにはまだフォーカスがあり、カーソルはテキスト ボックスに残ります。キーを繰り返しタップすると、最終的に文字が表示されます。私たちのアプリケーションは多くのビジーな処理スレッドを使用していますが、CPU 使用率は 100% にはほど遠い状態です。
この動作が発生すると、アプリケーションを再起動するまでその状態が続きます。その後、キーボードは正常に動作します。USBキーボードを接続して入力する場合は、全く問題ありません。
物理的なキー押しとプログラムによるキー押しの違いに興味がありますか? プログラムでキーを押すと、物理キーボードのようにハードウェア割り込みが生成されますか? .NET は各タイプを異なる方法で処理できますか?
問題のデバッグに役立つ提案をいただければ幸いです。