我有一个无线键盘和鼠标,没有任何锁定指示器,也没有捆绑任何软件来提供视觉辅助,所以我自己制作。
我明白了,如果我点击一个 notifyIcon,它会列出打开了哪些锁,但我想通过在锁被激活时提醒我来让它变得更智能。
我在网上找到了一些东西,但老实说我只想要锁定键,我不关心任何其他键盘按键。
我正在使用 C# .NET 4,但如果该版本有一些东西,我也可以使用 .NET 4.5。
谢谢。
请您参考如下方法:
您需要注册某种键盘钩子(Hook)来监听按键,然后检索锁定键的状态,如下所示:
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx
除上述文章外,进行以下修改以捕获锁键的状态:
private static IntPtr HookCallback(
int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
{
int vkCode = Marshal.ReadInt32(lParam);
Keys key = (Keys)vkCode;
if (key == Keys.Capital)
{
Console.WriteLine("Caps Lock: " + !Control.IsKeyLocked(Keys.CapsLock));
}
if (key == Keys.NumLock)
{
Console.WriteLine("NumLock: " + !Control.IsKeyLocked(Keys.NumLock));
}
if (key == Keys.Scroll)
{
Console.WriteLine("Scroll Lock: " + !Control.IsKeyLocked(Keys.Scroll));
}
Console.WriteLine((Keys)vkCode);
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
