我注意到C++中的vkCode给出的键码与C++的KeyEvent给出的键码不同。(当然,普通字符具有相同的代码(0、=>、48,就像ASCII码一样),但它们在其他键上不同)。有没有办法将它们从一种“翻译”到另一种(每种方法背后的逻辑是什么?)或者我应该使用大量的开关和IFs来实现这个目的。如果有帮助的话,我的应用程序一半在C++中,一半在JAVA中,因为c++给了我们原生钩子,它会获得用户按下的键的键码,然后java就会使用它们。
提前谢谢。
发布于 2010-05-10 02:56:03
,还是应该使用大量的交换机和IFs
您可能只需要将它们放在一个lookup table中,也就是说,将Java KeyCodes放在一个大型数组中,所以您只需要执行javaKeyCode = keyLut[cppScanCode]
。
一个扫描码列表可以在here中找到,VK_KEYCODES
当然可以在the API docs for KeyEvent
中找到。
Java被设计成与平台无关,所以无论扫描码如何,按下左键总是会产生一个VK_LEFT
。我不能完全确定,但我认为C++-scancode依赖于硬件。
https://stackoverflow.com/questions/2798708
复制相似问题