alt*_*189 2 java keyevent awtrobot
当您尝试使用Robot.keyPress键入"(双引号)时,它会抛出java.lang.IllegalArgumentException:无效的键代码.
我该如何解决或解决这个问题?
如果它有帮助,我目前在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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
例外:
java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Robot.java:358)
Run Code Online (Sandbox Code Playgroud)
我认为你得到一个错误,因为"键盘上没有键. "几乎肯定会在键盘上的一个键上,但它很可能会被移动."你不应该试图"按下" ,而是"按"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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在英国键盘上(我正在使用),"角色被移动2,这就是我使用的原因KeyEvent.VK_2.它可能在其他键盘上的其他位置 - 如果我没记错的话,它会在美国键盘上移动单引号.在这种情况下,您将使用VK_QUOTE而不是VK_2.
我还发现释放VK_SHIFT按键是必要的,以避免Windows的各种奇怪,认为Shift键仍然被按下.
| 归档时间: |
|
| 查看次数: |
3062 次 |
| 最近记录: |