C#で相互運用機能を使用してキーボードの状態を取得しています
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetKeyboardState(byte[] lpKeyState);
私の問題は、keyboardLayoutを切り替えると(つまり、QWERTYからDvorakにCtrl-Shift)、関数GetKeyboardState
が異なる仮想キーコードを返すようです。実際のキーボード メーカーが使用したレイアウトに従ってキーコードを簡単に取得する方法はありますか?