.NET で NumLock、CapsLock、ScrollLock キーの状態を確認するにはどうすればいいですか?
ベストアンサー1
WinAPI関数をインポートするキーステートを取得:
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
public static extern short GetKeyState(int keyCode);
そして、次のように使用できます。
bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
bool NumLock = (((ushort)GetKeyState(0x90)) & 0xffff) != 0;
bool ScrollLock = (((ushort)GetKeyState(0x91)) & 0xffff) != 0;
これはフレームワーク 1.1 用です。フレームワーク 2.0 (以降) の場合は以下を使用できます。