コンピューターに搭載されているキーボードの種類(つまり、キーが配置されている場所、および追加のキーがどの場所に存在するか)をプログラムで確認する方法はありますか?
キーボードが非常に非標準である場合、少しのエラーは許容されますが、一般的に重要なのは、画面上にキーボードレイアウトを動的に高精度で描画できる画面上のキーボードのようなアプリケーションを構築することです。
コンピューターに搭載されているキーボードの種類(つまり、キーが配置されている場所、および追加のキーがどの場所に存在するか)をプログラムで確認する方法はありますか?
キーボードが非常に非標準である場合、少しのエラーは許容されますが、一般的に重要なのは、画面上にキーボードレイアウトを動的に高精度で描画できる画面上のキーボードのようなアプリケーションを構築することです。
コンピュータに接続すると、キーボードは「スキャンコード」をオペレーティングシステムに送信します。Windowsでは、スキャンコードは仮想キー(キーボードのハードウェアに依存しないマッピング)に変換され、次に実際の文字に変換されます。
MapVirtualKeyEx()
Windows APIの機能を使用すると、スキャンコード、仮想キー、および文字を変換できます。また、キーが存在しないかどうかも通知できるはずです。
これとともに、GetKeyboardLayout()
どのキーボードが任意の時点でアクティブであるかを示します(キーボードのレイアウトは、実行中のアプリケーションごとに異なる可能性があります)。これにより、キーボードの非常に正確なマップを作成できます。
とにかく、見てくださいkeyboard input section of the MSDN
すべてのキーボードのレイアウトがほぼ同じであることを付け加えておきます。キーが物理的にどこにあるかを知る方法はありませんが、スキャンコードと自分のキーボードの基本的な知識から推測できるでしょう。
キーボードがWindowsにその物理的なレイアウトがどのように見えるかを伝えるメカニズムはありません。Windows版のオンスクリーンキーボードosk.exeで簡単に確認できます。マシンのフォームファクター(ラップトップとデスクトップ)を推測できるようですが、私のラップトップでは、キーボードのレイアウトと一致していません。
osk.exeレイアウトをテンプレートとして使用して、自分のレイアウトがうまく一致していないと誰も文句を言わないようにします。