我不知道如何在这里写一个好问题,但是,基本上,有谁知道在哪里可以找到一些C ++源代码使用这些来实际设置键盘状态?出于某种原因使用它,MSDN在Windows 7上的方式不做任何事情。
基本代码:
PBYTE keyState;
GetKeyboardState(keyState);
...
// Later on when I need to set the keyboard state (key pressed etc) back to original:
SetKeyboardState(keyState);
并且......没有任何反应:(
答案 0 :(得分:0)
自: http://www.gamedev.net/community/forums/topic.asp?topic_id=43463
首先,GetKeyboardState()将是一个错误的函数,因为Windows有机会处理键盘消息(无论你是否也想要它),它会更新键盘状态的结果,以便下次调用GetKeyboardState( )。
这是我用来获取键盘按键状态的一个小功能。但请注意,根据主循环的速度,如果你不期待它可能会引起问题。
您需要跟踪上次调用ReadKeyboard()函数时是否按下了特定键。如果您的循环每秒轮询键盘30次,则按一次键可能会导致该键连续标记3或4个调用。有时候相当混乱。我以为我会提到它。
void ReadKeyboard( char* keys )
{
for (int x = 0; x < 256; x++)
keys[x] = (char) (GetAsyncKeyState(x) >> 8);
}