我一直在研究这个问题,但还没有找到一个对我有意义的答案。
我正在尝试用Java编写一个程序来与应用程序交互,看看我是否可以编写一个程序来为我玩视频游戏。这个游戏在我的电脑上。
以下是代码的摘录:
public static void main(String[] args) throws java.io.IOException {
Runtime run = Runtime.getRuntime();
run.exec("open /Applications/OpenEmu.app");
try {
Robot robot = new Robot();
System.out.println("Waiting 5 Seconds");
//robot.delay(5000);
System.out.println("Pressed X");
robot.keyPress(KeyEvent.VK_X);
robot.keyPress(KeyEvent.VK_X);
robot.keyPress(KeyEvent.VK_X);
robot.keyPress(KeyEvent.VK_X);
//Starts an easy mode game
它可以很好地打开应用程序,并且在记事本之类的东西中,它将输入XXXX,但它不会在游戏中这样做?
我已经将键盘上的“x”键指定为游戏的命令按钮。我的猜测是“x”新闻是内部的。感谢所有的帮助!
发布于 2018-08-09 05:50:16
如果您正在尝试模拟输入,也可以尝试添加robot.keyRelease。机器人的Javadoc对keyPress说:“按一个给定的键。这个键应该使用keyRelease方法释放。”
System.out.println("Pressed X");
robot.keyPress(KeyEvent.VK_X);
robot.keyRelease(KeyEvent.VK_X);
...
还要记住这一点:https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html“请注意,有些平台需要特殊的特权或扩展才能访问低级输入控制。”
https://stackoverflow.com/questions/51755937
复制相似问题