使用AWT Robot在Mac上切换应用程序有时只能工作

时间:2018-02-01 01:13:15

标签: java macos javafx awt awtrobot

我尝试使用Robot来切换应用,然后输入一些文字。为此(在我的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);

这是有效的,但只是偶尔(大约每5或6次按下)。我尝试在按下和释放之间调用Thread.wait(),但这没有效果。也没有尝试使用META_DOWN_MASK屏蔽Tab。我也尝试使用JavaFX Robot(com.sun.glass.ui.Robot),但JavaFX版本根本不起作用。

1 个答案:

答案 0 :(得分:1)

啊..似乎我需要指定事件之间的延迟。更新:

            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);