我正在使用德国键盘(如下图所示),并在Java中尝试机器人类。我正试图为我按下的键找到KeyCodes。它适用于getKeyCode()。例如:'A‘是代码: 65,’‘是代码: 45,’输入‘是代码: 10
但是当我按下'?\‘键(在德国键盘上,在上面1-0键的右边),getKeyCode()说代码:0,而我在纪录片中也没有找到任何VK_KEY。
有办法按那把钥匙吗?

发布于 2016-04-27 17:53:24
反斜杠\显然被认为是该键的主要字符。所以KeyEvent.VK_BACK_SLASH给出了德国键盘上那个键的键码。
发布于 2014-12-29 16:48:45
关键代码是带有英语/美国布局的键盘。尝试将VK_EQUALS作为密钥本身,但Robot实际上可能会发送一个=。
如果不需要按下实际的键,但输入的字符,则可以尝试通过Alt+Unicode代码点模拟Unicode输入。参见这个问题:如何使Java.awt.Robot类型的unicode字符?(有可能吗?)
还请参阅这个答案:https://stackoverflow.com/a/14766664/34088它指向一个库,它使用键盘布局将Java字符映射到键。RoboticAutomaton.typeCharacter()使用键盘布局来找出要按哪个键才能得到某个字符。
发布于 2014-12-31 20:08:05
KeyEvent的javadoc说:
并非所有字符都有与它们相关联的密钥。例如,问号没有键码,因为主层上没有显示它的键盘。
ß字符就是这样一个字符。但是,所有键按事件都有一个一致的扩展密钥代码,可以使用实用工具方法KeyEvent.getExtendedKeyCodeForChar()找到这些代码,并将其与来自键事件的扩展代码进行比较:
if (keyEvent.getExtendedKeyCode() == KeyEvent.getExtendedKeyCodeForChar('ß')) {
// ß was pressed
}https://stackoverflow.com/questions/27680924
复制相似问题