我正在尝试使用机器人来切换应用程序,然后输入一些文本。为此(在我的 Mac 上),我按 Meta、Tab,然后按以下顺序释放 Tab、Meta:
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_META);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_META);
这有效,但只是偶尔(大约每按五六次)。我尝试在按下和释放之间调用 Thread.wait() ,但这没有效果。尝试使用 META_DOWN_MASK 屏蔽 Tab 也不起作用。我也尝试过使用 JavaFX Robot (com.sun.glass.ui.Robot),但 JavaFX 版本根本无法工作。
最佳答案
啊..看来我需要指定事件之间的延迟。更新:
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_META);
robot.delay(300);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_META);
关于java - 使用 AWT Robot 在 Mac 上切换应用程序有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553913/