【问题标题】:Java robot keyboardJava机器人键盘
【发布时间】:2013-12-04 20:59:18
【问题描述】:

我正在尝试用 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) {
                }
            }

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

【问题讨论】:

  • 首先,您只需在类级别创建一个 Robot 实例。然后你的事件处理程序应该放在一个事件处理循环中。
  • @MarsAtomic 我在这里看不到事件处理程序
  • 因为他需要实现它们。我试图在不为他编写代码的情况下提供指导,这将使他有工作代码但无法理解。但是,您的评论确实为Java Tutorial 的介绍提供了一个很好的入口
  • 这没有简单的方法,因为 KeyEvent.VK_H 用于“H”和“h”,区别在于 shift 键的状态。我过去使用翻译表作为当时唯一可行的解​​决方案

标签: java keyboard remote-access awtrobot


【解决方案1】:

你想要做的是实现一个 KeyListener 来接收所有的键 这是事件和一些例子: KeyListener

【讨论】:

  • 这听起来与问题所要求的相反。 编辑:哦,现在我明白了!
  • 他不必使用密钥侦听器检查他想要的每个密钥,因为他将接收 e.Key 作为属性
【解决方案2】:

这适用于字母 A 到 Z:

robot.keyPress(KeyPressed);

但是对于一些非字母键,您必须使用其他东西。


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

另外,你如何将像 Scroll Lock 这样的键表示为一个字符?!

【讨论】:

  • 啊是的 - KeyPressed.charAt(0) 然后
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 2018-03-23
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2020-10-08
    • 2017-01-25
    • 1970-01-01
    • 2018-09-25
    • 2017-08-01
    相关资源
    最近更新 更多