当您尝试使用 Robot.keyPress 键入"
(双引号)它抛出 java.lang.IllegalArgumentException: Invalid key code。
我该如何解决或解决这个问题?
如果有帮助的话,我目前使用的是 Windows。
测试代码:
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Test {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
try {
robot.keyPress(KeyEvent.VK_QUOTEDBL);
} catch (Exception e) {
e.printStackTrace();
}
}
}
例外:
java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Robot.java:358)
我认为您收到错误是因为没有"
键盘上的键。"
几乎肯定会位于键盘的某个键上,但它很可能会被移动。而不是试图“按下”"
,您应该“按”Shift 和该键的“基本”字符,即您单独键入该键时得到的字符。
我发现在命令提示符下运行以下类给我留下了一个"
特点:
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Test {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
try {
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_2);
robot.keyRelease(KeyEvent.VK_SHIFT);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在英国键盘(我正在使用)上,"
字符被移动2
,这就是我使用的原因KeyEvent.VK_2
。它可能位于其他键盘上的其他位置 - 如果我没记错的话,它在美国键盘上被移动单引号。在这种情况下,你会使用VK_QUOTE
代替VK_2
.
我还发现释放VK_SHIFT
keypress 是必要的,以避免 Windows 认为 Shift 键仍被按住的各种奇怪情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)