我注意到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与硬件有关.