使用Java发送密钥组合

时间:2013-01-30 02:02:18

标签: java awt keypress awtrobot

根据上一个链接(How to send keyboard outputs),Java可以模拟使用Robot类按下的键。但是,如何模拟按键的组合?如果我想发送组合“alt-123”,那么可以使用Robot吗?

4 个答案:

答案 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)