// 程序执行到这边时大小写的灯是亮的, 下面一句ketstate 的值为1,
// if语句切换大小写,大小写的灯灭掉
SHORT ketState = GetKeyState(VK_CAPITAL);
if (ketState & 0x1)
{
keybd_event( VK_CAPITAL, 0, 0, 0);
Sleep(20);
keybd_event( VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
Sleep(20);
// 可已经转换成小写了,为什么这边的ketstate还是1
ketState = GetKeyState(VK_CAPITAL);
msdn中是这样说的:
If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0
求告诉指教
{
while(TRUE)
{
Sleep(1000);
if(LOBYTE(GetKeyState(VK_CAPITAL)))
{
printf("CapLocks On\r\n");
}
else
{
printf("CapLocks Off\r\n");
}
}
return 0;
}