如何使用 Java Robot 输入非小键盘数字?
Posted
技术标签:
【中文标题】如何使用 Java Robot 输入非小键盘数字?【英文标题】:How to input non-numpad numbers with Java Robot? 【发布时间】:2012-07-25 16:44:13 【问题描述】:我正在运行一个 Java 机器人类,我需要输入键盘键 0-9(实际数字),而不是数字键盘数字。出于某种原因,我正在使用的 java 小程序(我没有写)不接受来自数字键盘的 0-9 键,只接受标准键盘上方的 0-9 行。但是,Java 机器人类似乎只有一个 VK_NUMPAD# KeyEvent。起初,我尝试了 VK_1 事件,但结果与数字无关(而是前 0-9 个 ASCII 字符)。有什么办法可以得到第一行的数字吗?我使用的机器人除此之外工作正常,并且会很乐意输入“VK_P”和“VK_UP”等键。 谢谢!
【问题讨论】:
您能给我们提供有关您正在使用的小程序的任何信息吗?还是具有 VK_NUMPAD# 事件的机器人类? 小程序是 webpacman.com/mspacman.htm 。它将接受像 VK_UP 这样的 KeyEvents 来移动 pacman 而不会抱怨,而不是数字。机器人类是来自docs.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html 的标准Java Robot。此外,VK_NUMPAD[#] 只是我对 VK_NUMPAD1、VK_NUMPAD2 等的符号。 【参考方案1】:This 应该是关键代码的最终链接。当使用e.getKeyCode()
时,我们看到 VK_NUMPAD 的代码分别为 96-105 对应数字 0-9。仅当 num_lock 开启时才会出现这种情况,因为如果关闭,您将获得其他代码。
您对 VK_1 的尝试应该是正确的。那就是代码 49,它对应于顶行上的 1 已被推送。我用我拥有的小程序尝试了这个。我卡在一个 KeyListener 中,并验证这是正确的。 48-57 对应于第一行的 0-9,在我给出的链接中列为 VK_0 ... VK_9。必须有某种覆盖(例如 num_lock 键覆盖数字键盘)正在重新映射它,因为正如我所说 VK_1 是键盘顶部 1 字符的正确答案。
【讨论】:
以上是关于如何使用 Java Robot 输入非小键盘数字?的主要内容,如果未能解决你的问题,请参考以下文章