java - 使用 AWT Robot 在 Mac 上切换应用程序有时有效

标签 java macos javafx awt awtrobot

我正在尝试使用机器人来切换应用程序,然后输入一些文本。为此(在我的 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/

相关文章:

java - Android 中用于更新数据库的 SQLite 语句不起作用

c++ - 使用 libMallocDebug 调试内存泄漏

NetBeans 7.1 中的 JavaFX 2.1 CSS 样式警告

javaFX 2.0 如何选择文件又名 FileChooser

javafx - 如何正确制作嵌套的 JavaFX GridPanes 布局?

java - Apache poi 无法打开 Word 文档 : NoSuchMethodError using ooxml-shemas-1. 0.jar,但无法使用 poi-ooxmlshemas-3.8.jar

java - 在理解线程等待和通知方面需要帮助

java - 基于对象实例进行类型转换的正确方法

linux - NPM/Cordova 权限错误 : EACCES: permission denied, scandir

objective-c - 计算子 NSDictionary 键