我需要在主机上创建按键事件。 所以,我做了一个像这样的简单的java代码。
import java.awt.event.KeyEvent;
import java.awt.Robot;
import java.io.IOException;
public class Hello {
public static void main(String[] args) throws IOException {
try {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_F11);
} catch (Exception e) {
e.printStackTrace();
}
}
}
当我使用 Eclipse
在 Windows 上执行此代码时,F11
的 keyevent
仅在 5 秒后触发一次。
但是,当我使用 Eclipse
或命令(javac
和 java
)在 Ubuntu(12.04)
上执行此操作时,
keyevent
似乎是连续触发的。 (好像进入无限循环)
Java 版本在 Ubuntu 上是 1.6 和 1.7
。
我不知道为什么会这样。有人知道这个的解决方案吗?
最佳答案
您还需要释放 key (以模拟 key 类型)...
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_F11);
Thread.sleep(250);
robot.keyRelease(KeyEvent.VK_F11);
否则系统会认为您按住了键...
ps- 我发现添加一个小延迟有助于改进整体功能。您可以直接在机器人中设置自动延迟。参见 Robot#setAutoDelay
了解更多详情
关于java - 在 Ubuntu 上无限调用 Keyevent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17080902/