如何检测键盘是否有数字块?

时间:2015-06-24 07:43:20

标签: c# .net

我正在制作一个小工具,用数字键盘打开键盘上的numlock。我知道如何用C#打开/关闭numlock,但我不知道如何确定键盘是否有数字键盘。

1 个答案:

答案 0 :(得分:3)

在项目中导入此API:

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
public static extern short GetKeyState(int keyCode);

并使用此命令获取Numlock状态:

bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
bool NumLock = (((ushort)GetKeyState(0x90)) & 0xffff) != 0;
bool ScrollLock = (((ushort)GetKeyState(0x91)) & 0xffff) != 0;

无NumLock返回0