【问题标题】:Use a robot to type characters in Java使用机器人在 Java 中键入字符
【发布时间】:2011-07-10 15:32:21
【问题描述】:

我知道如何让机器人像这样模拟 Y 按键:

    Robot.keyPress(KeyEvent.VK_Y);

但是如何让机器人按下报价和句号?:

".  

谁能给我一些参考页面或示例代码?

【问题讨论】:

  • 你的意思是 System.out.print("\""); 还是别的什么?
  • 我想做这样的事情:robot.keyPress(KeyEvent.VK_D);
  • 对不起,我的问题被管理员修改了。
  • 我想做这样的事情:stackoverflow.com/questions/397113/…
  • 我重新编辑了你的帖子,希望它更接近你的初衷。如果我错了,请随时自己重新编辑。祝你好运!

标签: java keypress awtrobot


【解决方案1】:

您不能总是只使用 KeyEvent.VK... 变量。

例如,在我的键盘上,“%”字符位于“5”上方。要使用机器人输入“5”,代码为:

robot.keyPress(KeyEvent.VK_5); 
robot.keyRelease(KeyEvent.VK_5);

并使用机器人输入“%”,代码将是:

robot.keyPress(KeyEvent.VK_SHIFT); 
robot.keyPress(KeyEvent.VK_5); 
robot.keyRelease(KeyEvent.VK_5);
robot.keyRelease(KeyEvent.VK_SHIFT);

【讨论】:

    【解决方案2】:

    如果你想使用 Robot,KeyEvent 有 VK_QUOTE 和 VK_PERIOD 常量。所有这些常量以及更多常量都可以通过KeyEvent API

    获得

    【讨论】:

    • @dfdsfsdfsddsgsrew:欢迎您。我认为有人过度编辑了您的原始帖子,删除了关键信息,对此我深表歉意。
    • 不必感到抱歉。你的回复对我很有用!
    【解决方案3】:

    以前的Robots 似乎已被弃用。

    目前,对于 JavaFX,有 FXRobot

    FXRobot robot = FXRobotFactory.createRobot(scene);
    robot.keyPress(KeyCode.QUOTE);
    robot.keyPress(KeyCode.PERIOD);
    

    【讨论】:

      【解决方案4】:

      “以编程方式键入这些字符”是什么意思?

      您可以使用反斜杠 (\) 打印双引号,但您不需要任何特殊的句点:

      System.out.println("This is a quote symbol: \" and this is a period: .");
      

      输出:

      This is a quote symbol: " and this is a period: .
      

      【讨论】:

      • 我知道这不是你想要做的。您似乎正在寻找 @Hovercraft Full of Eels 提供的 KeyEvent 的键盘代码。
      【解决方案5】:

      您的问题不清楚,但要打印字符,您可以使用以下 sn-p 作为模板使用流:

      System.out.println("\".");

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 2013-06-24
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        • 2013-07-20
        • 2021-10-10
        相关资源
        最近更新 更多