Java => 缩短机器人命令

标签 java input automation awtrobot

嘿,使用这个代码片段:

try {

      Robot robot = new Robot();

      robot.keyPress(KeyEvent.VK_H);
      robot.keyRelease(KeyEvent.VK_H);
      robot.keyPress(KeyEvent.VK_A);
      robot.keyRelease(KeyEvent.VK_A);
      robot.keyPress(KeyEvent.VK_L);
      robot.keyRelease(KeyEvent.VK_L);
      robot.keyPress(KeyEvent.VK_L);
      robot.keyRelease(KeyEvent.VK_L);
      robot.keyPress(KeyEvent.VK_O);
      robot.keyRelease(KeyEvent.VK_O);

 } catch (AWTException e) {
      e.printStackTrace();
 }

我得到这个结果:

hallo

但是有什么办法可以缩短这个过程吗?例如像这样的东西:

try {

       Robot robot = new Robot();

       String  word = "hallo";

       // something like:
       robot.keyPress(KeyEvent.word);

   } catch (AWTException e) {
       e.printStackTrace();
   }

我知道这个例子不起作用,但我找不到任何关于这个的文档。

你有什么想法吗?问候和感谢

最佳答案

如果您使用的是 Java 7,则可以使用 KeyEvent.getExtendedKeyCodeForChar从字符中获取 key 代码的方法:

   import java.awt.event.KeyEvent; 

   [...]

   public static void type(Robot robot, String word) {
        for (int i = 0; i < word.length(); i++) {
            int keyCode = KeyEvent.getExtendedKeyCodeForChar(word.charAt(i));
            robot.keyPress(keyCode);
            robot.keyRelease(keyCode);
        }
    }

   [...]

   Robot robot = new Robot();
   type(robot, "hallo");

关于Java => 缩短机器人命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705218/

相关文章:

java - 希望使用2个枚举来描述java中的类并将它们分配给主函数中的类

html - 在页脚元素中设置输入的占位符颜色不起作用

xml - XForms 和同一模型标签的多个输入

c++ - 确定二进制文件的大小

Azure Devops API 创建构建定义

dom - 追踪 DOM 元素 id 回到它的 ExtJs 组件

java - Elasticsearch 分析

java - 如何使用 XQuery 从 Java 使用 Saxon 输出 json

java - Dojo 和 Java 中的 AJAX PUSH(流)实现

c# - 在 Chrome 中使用 selenium webdriver 在 google 搜索结果中查找搜索文本