【发布时间】:2012-12-11 15:02:40
【问题描述】:
我目前的项目涉及使用 Java 的 Robot 类来模拟按键的自动化。
我的问题是某些键码无法传递给机器人的keypress(int keycode) 方法。
我已经知道的:
在阅读了这个问题的解决方案:Why are some KeyEvent keycodes throwing IllegalArgumentException: Invalid key ocode 之后,我开始修改我的代码,将某些符号,如 £ (VK_DOLLAR) 更改为 VK_SHIFT + VK_3,& (VK_AMPERSAND) 更改为 VK_SHIT + VK_7 等...
我的问题:
然而,我的问题是如何确定哪个键与 shift 结合使用时给出什么符号,因为不同的键盘(并且通常来自操作系统的不同键盘配置)会改变这些。
一个典型的例子是@ (at symbol) and " (double quote)。 VK_SHIFT + VK_2 在某些系统上可能是 at 符号,而在其他系统上可能是双引号。
在调用机器人按键之前,Java 中是否有要检查的符号依赖于哪个键?
提前致谢。
【问题讨论】:
-
你能假设键盘布局不会随时间改变吗?
-
这句话来自一个名叫德沃夏克的人,有点讽刺! :)
-
@HovercraftFullOfEels 不用担心,Dvorak 键盘与 QWERTY 共享 shift 映射,只是按键位置不同。
-
为什么不假设 shift-mapping 与英国键盘兼容?
-
如果一切都失败了,您可以随时询问用户如何获取特定符号。
标签: java keyboard awt keypress awtrobot