0

C#で相互運用機能を使用してキーボードの状態を取得しています

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetKeyboardState(byte[] lpKeyState);

私の問題は、keyboardLayoutを切り替えると(つまり、QWERTYからDvorakにCtrl-Shift)、関数GetKeyboardStateが異なる仮想キーコードを返すようです。実際のキーボード メーカーが使用したレイアウトに従ってキーコードを簡単に取得する方法はありますか?

4

1 に答える 1

0

仮想キー コードをキーボード スキャン コードにマップする必要があります。MapVirtualKeyExを参照してください。

于 2013-03-21T13:57:15.067 に答える