0

まず、背景情報をいくつか...

スレート PC、つまり物理キーボードがない上で実行される C# .NET アプリケーションがあります。Windows XP Tablet Edition に組み込まれているオンスクリーン キーボードを使用して、フォームに TextBox コントロールを設定しています。フォームには特別なキー押下処理はありません (ただし、UI の他のコンポーネントはキー押下を処理します)。

スクリーン キーボードが一部のキー押下の登録を停止することがあります。フォームにはまだフォーカスがあり、カーソルはテキスト ボックスに残ります。キーを繰り返しタップすると、最終的に文字が表示されます。私たちのアプリケーションは多くのビジーな処理スレッドを使用していますが、CPU 使用率は 100% にはほど遠い状態です。

この動作が発生すると、アプリケーションを再起動するまでその状態が続きます。その後、キーボードは正常に動作します。USBキーボードを接続して入力する場合は、全く問題ありません。

物理的なキー押しとプログラムによるキー押しの違いに興味がありますか? プログラムでキーを押すと、物理キーボードのようにハードウェア割り込みが生成されますか? .NET は各タイプを異なる方法で処理できますか?

問題のデバッグに役立つ提案をいただければ幸いです。

4

1 に答える 1

0

XP OSK のタブレット バージョンを使用したことはありませんが、XP Embedded バージョンは使用したことがあります。私が知る限り、Windows API は .NET アプリケーションと MFC アプリケーションに同じ方法でキーの押下を送信していました。実際、私の記憶が正しければ、この 2 つをプログラムで区別する方法はありませんでした。私が知る限り、OSK はハードウェアの割り込みを引き起こしませんが、仮想キー コードは物理的なものとまったく同じ方法でアプリケーション レベルのプログラムに送信されます。

カスタム ドライバーなど (ハードウェア レイヤーにアクセスできるもの) を実行していない限り、問題の原因はアプリケーションではないようです。

まだ行っていない場合は、タッチスクリーンに最新のドライバーがあり、適切に調整されていることを確認します。また、OSK に Microsoft からの最新の更新プログラムがすべて含まれていることも確認します。

于 2010-03-03T04:04:26.567 に答える