根据上一个链接(How to send keyboard outputs),Java可以模拟使用Robot类按下的键。但是,如何模拟按键的组合?如果我想发送组合“alt-123”,那么可以使用Robot吗?
答案 0 :(得分:15)
简单的答案是肯定的。基本上,您需要将 Alt 的keyPress/Release
包裹在其他keyPress/Release
s
public class TestRobotKeys {
private Robot robot;
public static void main(String[] args) {
new TestRobotKeys();
}
public TestRobotKeys() {
try {
robot = new Robot();
robot.setAutoDelay(250);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_1);
robot.keyRelease(KeyEvent.VK_1);
robot.keyPress(KeyEvent.VK_2);
robot.keyRelease(KeyEvent.VK_2);
robot.keyPress(KeyEvent.VK_3);
robot.keyRelease(KeyEvent.VK_4);
robot.keyRelease(KeyEvent.VK_ALT);
} catch (AWTException ex) {
ex.printStackTrace();
}
}
}
答案 1 :(得分:2)
这是一个例子
Robot r = new Robot();
Thread.sleep(1000);
r.keyPress(KeyEvent.VK_ALT);
r.keyPress(KeyEvent.VK_NUMPAD1);
r.keyPress(KeyEvent.VK_NUMPAD2);
r.keyPress(KeyEvent.VK_NUMPAD3);
r.keyRelease(KeyEvent.VK_ALT);
不要忘记发布一些特殊的按键,它会在你的机器上制造一些疯狂的东西
答案 2 :(得分:2)
使用java.awt.Robot发送密钥组合时,以下代码可以正常使用
/*
$collection = collect($clien);
$collection1 = $collection->chunk(500);
*/
$collection = array_chunk($clien, 500, true);
答案 3 :(得分:0)
此代码太靠近原生Windows键盘。即便是Api键盘"按下"正在进入Eclipse ide,因为那些通常会从ide中按下。 Keys是从当前调试的应用程序生成的! (jdk 1.8,win 7,hp)