多个同时按键c#

我正在使用microsoft visual studio c#编写游戏,我必须同时捕获很多键。 我无法同时检测Q,W,E,R,T,Y但我可以检测到Q,W,E,R,T,A。

我试图使用KeyDown和[DllImport("user32.dll")]但两者都有相同的结果。 Y和A键有什么区别,我该如何解决这个问题?

 int code1 = GetVirtualKeyCode(Keys.Q); int code2 = GetVirtualKeyCode(Keys.W); int code3 = GetVirtualKeyCode(Keys.E); int code4 = GetVirtualKeyCode(Keys.R); int code5 = GetVirtualKeyCode(Keys.T); int code6 = GetVirtualKeyCode(Keys.Y); if ((array[code1] & 0x80) != 0 && (array[code2] & 0x80) != 0 && (array[code3] & 0x80) != 0 && (array[code4] & 0x80) != 0 && (array[code5] & 0x80) != 0 && (array[code6] & 0x80) != 0) { listBox1.Items.Add("asdasdasd"); } 

它可能与您的键盘有关。 当我是游戏玩家时,我知道键盘属性可以同时发送多次击键; 根据键盘的不同,数字会有所不同,但不同的组合也会或不会起作用。

这称为密钥翻转。 USB键盘仅支持有限键翻转,而一些巧妙设计的PS / 2键盘具有n键翻转(许多键可以同时按下而不会使其他按键静音)

阅读: 维基百科说明