C键盘键码和JAVA KeyEvent键码之间的区别

我注意到C中的vkCode提供的键码与Java的KeyEvent提供的键码之间存在差异. (当然,正常字符具有相同的代码(就像ASCII一样,0 => 48),但其他键有所不同).
有没有办法将它们从一个“转换”到另一个(每个逻辑背后的逻辑是什么?),或者我应该为此使用大量的开关和IF.
如果有帮助,由于c为我们提供了本机挂钩,因此我的应用程序用C语言占一半,用JAVA语言占一半,它获取用户按下的键的键代码,然后Java将使用它们.

提前致谢.

解决方法:

or am I supposed to use loads of switches and IFs

您可能只需将它们放在lookup table中,即将Java KeyCodes放在一个大数组中,因此您只需要执行javaKeyCode = keyLut [cppScanCode].

可以找到一个扫描代码列表here,当然可以在the API docs for KeyEvent中找到VK_KEYCODES.

Java被设计为与平台无关,因此,例如,按左键,无论扫描代码如何,都将始终产生VK_LEFT.我不太确定,但我想C -scancode与硬件有关.

上一篇:(尚011)Vue事件处理


下一篇:java-如何确定字符是否需要按下Shift键才能输入?