我想在Java中模拟一个按键。其他人也尝试过使用Robot。这只允许原子按键,在这里我想模拟按键(比如说一秒钟)然后松开。因此,我需要使用JNA或JNI。
我研究了JNative,但这似乎是为了在操作系统级别消费关键事件,而不是在操作系统级别生成它们。如何从Java生成这样的事件?
谢谢
发布于 2012-03-26 11:04:56
在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或机器人中存在错误)
发布于 2012-03-26 11:09:55
实际上,使用Robot时,你可以按住一个键不放。
Robot r = ...
r.keyPress(KeyEvent.VK_A);
Thread.sleep(1000);
r.keyRelease(KeyEvent.VK_A);https://stackoverflow.com/questions/9866071
复制相似问题