1

通常のキーボードでキーが押されるたびに、数字の「キーコード」がコンピューターに送信されます。特定のキーを表す 32 または 51。

この投稿を入力するために使用しているデフォルトのキーボードとは関係ありませんが、USB 経由でキーボードを接続し、そのキーコードをすべて一定の C だけシフトアップできるようにしたいと考えています。

したがって、こちら側のキーボードで「a」キーを押すと、コンピューターは「a」のキーコードを受け取るのではなく、コンピューターが計画的に応答しないより高い数値を受け取ります。

これらの従来の範囲外のキーストロークは、それらが何であるかを知っており、それらをリッスンする私のプログラムを制御します。

ハードウェアまたはソフトウェアのソリューションがうまくいくでしょう。おそらく、この目的のために特別なキーボードが販売されているか、ソフトウェア関連の変更により、通常のキーボードでこれを実現できる可能性があります-私にはわかりません. 重要なのは、キーコード シフトがサイド キーボードにのみ適用され、通常のものに使用するデフォルトのキーボードには適用されないことです。

私はWindowsを使用しています。

4

2 に答える 2

1

必要以上に自分を制限していると思います。

手始めに、USBキーボードの説明はかなり単純化されています。状況はそれよりも少し複雑です。たとえば、実際にはキーダウン/キーアップシーケンスを取得します。(makeおよびbreakとも呼ばれます)。

次のことは、OSによるキーボードの処理について仮定しているということです。2番目のキーボードがUSBキーボードであると主張する場合、USBキーボード用のOSドライバーによって処理されます。それはシフトされた値を期待しません。たとえば、Microsoft Windowsでは、次の動作が文書化されています。

リリース(キーアップ)コードは0xFA以上であり、キーボードドライバーはそのような値をキーストローク(スキャンコード)ではなく8042チップからの応答として解釈することが知られているため、0x79を超えるセット1スキャンコードは避けてください。

次に、OSは、追加のキーボードが追加のキーを提供すると想定し、それを直接処理します。たとえば、ラップトップで使用できる数値のUSBキーボードがあり、Windowsはそれらを追加の0-9 +-/*=キーとして扱います。それらが別々のハードウェア上にあるかどうかは関係ありません。基本的に、私はこの2番目のキーボードのアイデアが飛ぶとは思わない。

現在、USBは通常、キーボードをより一般的なクラスの特殊なケースとして扱います。これは、より柔軟です。HID= HumanInputDevices。。たとえば、USBジョイスティックはヒューマン入力デバイスでもあり、一般的なOSはジョイスティックボタンを解釈しようとしません。ゲームはそれらを直接処理することが期待されており、アプリも同様に処理できます。

于 2010-09-14T08:00:37.003 に答える
0

プログラミングソリューションよりもハードウェアソリューションの方が必要なようです。これを試してくださいhttp://www.instructables.com/id/Hacking-a-USB-Keyboard/

于 2010-09-14T07:01:24.073 に答える