首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密钥的KeyCode (??)

密钥的KeyCode (??)
EN

Stack Overflow用户
提问于 2014-12-28 21:50:36
回答 3查看 5.5K关注 0票数 12

我正在使用德国键盘(如下图所示),并在Java中尝试机器人类。我正试图为我按下的键找到KeyCodes。它适用于getKeyCode()。例如:'A‘是代码: 65,’‘是代码: 45,’输入‘是代码: 10

但是当我按下'?\‘键(在德国键盘上,在上面1-0键的右边),getKeyCode()说代码:0,而我在纪录片中也没有找到任何VK_KEY

有办法按那把钥匙吗?

EN

回答 3

Stack Overflow用户

发布于 2016-04-27 17:53:24

反斜杠\显然被认为是该键的主要字符。所以KeyEvent.VK_BACK_SLASH给出了德国键盘上那个键的键码。

票数 2
EN

Stack Overflow用户

发布于 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()使用键盘布局来找出要按哪个键才能得到某个字符。

票数 1
EN

Stack Overflow用户

发布于 2014-12-31 20:08:05

KeyEvent的javadoc说:

并非所有字符都有与它们相关联的密钥。例如,问号没有键码,因为主层上没有显示它的键盘。

ß字符就是这样一个字符。但是,所有键按事件都有一个一致的扩展密钥代码,可以使用实用工具方法KeyEvent.getExtendedKeyCodeForChar()找到这些代码,并将其与来自键事件的扩展代码进行比较:

代码语言:javascript
复制
if (keyEvent.getExtendedKeyCode() == KeyEvent.getExtendedKeyCodeForChar('ß')) {
    // ß was pressed
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27680924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档