Java Robot - 在mac上输入'a'的问题

时间:2017-03-13 21:01:39

标签: java macos awtrobot

所以我有以下代码:

public static void main(String[] args) throws AWTException, InterruptedException {
    Robot robot = new Robot();

    robot.setAutoWaitForIdle(true);
    robot.setAutoDelay(40);

    // This works fine
    robot.mouseMove(40, 130);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(200);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.delay(200);

    // The 'a' is never inputted
    robot.keyPress(KeyEvent.VK_A);
    robot.delay(200);
    robot.keyRelease(KeyEvent.VK_A);
}

此代码成功将鼠标移动到位置40,130并单击。我确保在这个位置打开一个文本编辑器,以便它变得专注。

下一部分代码就是问题。 keyPress / Release片段适用于其他代码。 (如100,对应于数字4.)但由于某种原因,字母“a”将不会打印到文本编辑器中。

我试过让程序不断循环并打印约5秒钟。在编程点击后,它不会在文本编辑器中打印“a”。如果我在此期间再次点击编辑器,那么'a'的字符串将开始出现。

导致此行为的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:1)

正如我在评论中所假设的那样,我认为你正确地关注编辑器存在问题。 您可以通过Width + ALT尝试使用Windows解决方案,然后将其释放以选择编辑器。

TAB