Java机器人键盘

时间:2013-12-04 20:59:19

标签: java keyboard remote-access awtrobot

我正在尝试用Java创建一个应用程序,你可以从远处控制某些键盘,但我遇到了一个问题。我认为这样的事情是可能的:

            //the message is the key input
            String[] parts = message.split("-");
            String KeyPressed = parts[1];//This is the key that's pressed(for example K)
                try {
                    Robot robot = new Robot();
                    robot.keyPress(KeyEvent.VK_(KeyPressed));
                } catch (AWTException e1) {
            }

但这不起作用。我知道这个有用,但你必须为键盘上的每一个键重复它:

            //the message is the key input
            String[] parts = message.split("-");
            String KeyPressed = parts[1];
            if(KeyPressed.equals("H")){
                try {
                    Robot robot = new Robot();
                    robot.keyPress(KeyEvent.VK_H);
                } catch (AWTException e1) {
                }
            }

现在我的问题是,在几行中执行所有键的代码是什么,而不是为键盘上的每个键执行上面的代码?

3 个答案:

答案 0 :(得分:0)

您要做的是实现KeyListener以接收所有密钥 这是事件和一些例子: KeyListener

答案 1 :(得分:0)

这适用于字母A到Z:

robot.keyPress(KeyPressed);

但是你必须使用别的东西来代替一些非字母键。


问题是您接收字符作为输入,但发送键码作为输出。这是一个不寻常的翻译。如果你能以某种方式接收密码并直接发送它会更容易......请参阅Goran的回答!

另外,你甚至如何将Scroll Lock这样的键表示为角色?!

答案 2 :(得分:0)

尝试使用KeyStroke获取String的密钥代码,如下所示:

KeyStroke keyStroke = KeyStroke.getKeyStroke("H");
try {
    Robot robot = new Robot();
    robot.keyPress(keyStroke.getKeyCode());
} catch (AWTException e) {
    e.printStackTrace();
}