我正在使用RawInput来处理击键。我发现很难确定换档是否与钥匙一起按下。
来自RawInputStructure - > RawKeyboard,我可以检索被按下的键,但如果同时按下键,我不知道如何处理。
RI.Data.keyboard.VKey
(获取密钥代码)
我正在尝试为每个用户/键盘分隔Shift,因为当一个用户/键盘移动所有用户/键盘时,与Capslock相同。同时打字变得非常混乱。
如何知道换班是否与另一把钥匙一起按下?我是在正确的结构中寻找它还是应该在其他地方寻找?
答案 0 :(得分:6)
没有两个键被“同时按下”的事情。一个下降,然后另一个。你应该分别得到每个人的通知。按下或释放shift键时,在程序中设置或清除标志以记住其当前状态。
这实际上是操作系统已经为普通键盘输入做了什么。它保留一个键状态映射并使用每个键盘消息进行更新。使用GetKeyState
检查要处理的最新消息的密钥状态,或在调用该函数时使用GetAsyncKeyState
检查密钥的状态。 (如果键盘状态已更改但您尚未处理这些键盘消息,则两者可能会有所不同,例如,如果用户键入的速度比程序可以处理的速度快,则可能会有所不同。)
答案 1 :(得分:0)
您可以尝试以下方法: