【问题标题】:Robot in java (auto key press)java中的机器人(自动按键)
【发布时间】:2016-06-24 18:43:55
【问题描述】:

所以我想制作一个简单的 java 程序,在按下键 T 之后按下键,然后输入。并且重复这个 everz 3 秒我的代码如下:`

public static void main(String[] args) {
    final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    scheduler.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            try {
                Robot robot = new Robot();
                robot.keyPress(KeyEvent.VK_T);
                robot.keyRelease(KeyEvent.VK_T);
                robot.keyPress(KeyEvent.VK_KP_UP);
                robot.keyRelease(KeyEvent.VK_KP_UP);
                robot.keyPress(KeyEvent.VK_ENTER);
                robot.keyRelease(KeyEvent.VK_ENTER);
            }catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }, 3, 3, TimeUnit.SECONDS);
}

` 它按 T 但之后我得到一个异常......

java.lang.IllegalArgumentException: Invalid key code
    at sun.awt.windows.WRobotPeer.keyPress(Native Method)
    at java.awt.Robot.keyPress(Unknown Source)
    at Main$1.run(Main.java:21)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

` 请帮我解决它。

【问题讨论】:

标签: java awtrobot


【解决方案1】:

看起来 Java 不支持 Windows 上的键盘绑定。 Bug Report

我在 Windows 上尝试过,但没有成功。唯一的方法是使用VK_UP 而不是VK_KP_UP。如果您不需要向上指定小键盘,这将起作用:

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_T);
robot.keyPress(KeyEvent.VK_UP);
robot.keyRelease(KeyEvent.VK_UP);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    相关资源
    最近更新 更多