我想模拟Java中的按键。 其他人已经尝试使用机器人。 这只允许一个primefaces按键,我想模拟一个按键保持(一秒钟),并释放。 所以,我需要使用JNA或JNI。
我研究了JNative,但是这似乎是在操作系统级别上消费关键事件,而不是在操作系统级别生成它们。 我怎样才能从Java生成这样的事件?
谢谢
其实,使用机器人你可以按住一个键第二。
Robot r = ... r.keyPress(KeyEvent.VK_A); Thread.sleep(1000); r.keyRelease(KeyEvent.VK_A);
从JavaDoc:
void java.awt.Robot.keyPress(int keycode) Presses a given key. The key should be released using the keyRelease method.
编辑:添加一个示例:
Robot robot = new Robot(); System.out.println("You have 2 seconds to jump to the target window..."); Thread.sleep(2000); robot.keyPress( KeyEvent.VK_A); robot.keyRelease( KeyEvent.VK_A); robot.keyPress( KeyEvent.VK_SHIFT); robot.keyPress( KeyEvent.VK_A); robot.keyRelease( KeyEvent.VK_SHIFT); robot.keyRelease( KeyEvent.VK_A); Thread.sleep(2000);
输出到目标窗口:
aA
(我知道这不是你想要的,但是我将它作为参考添加给未来的读者,所以他们不认为JavaDoc或Robot中存在错误)