【问题标题】:An alternative,or a wrapper to the java.awt.robot class [duplicate]java.awt.robot 类的替代方案或包装器[重复]
【发布时间】:2017-07-25 07:08:41
【问题描述】:

所以我一直在尝试使用 java.awt.robot 类和 jnativehook 来创建一个复制和粘贴程序,该程序可以在您不应该复制和粘贴的地方工作。基本上它只是在等待你输入 crtl+v,然后使用剪贴板并应该使用机器人将其打印出来。这里的问题是,为了键入所有不同的字符,您必须对如何键入它们进行硬编码。因为我知道这可能没有很好地解释这里有一个例子: 打印“嗨 :)” 您必须编写以下代码:

    r.keyPress(KeyEvent.VK_SHIFT);
    r.keyPress(KeyEvent.VK_H);
    r.keyRelease(KeyEvent.VK_H);
    r.keyRelease(KeyEvent.VK_SHIFT);

    r.keyPress(KeyEvent.VK_I);
    r.keyRelease(KeyEvent.VK_I);

    r.keyPress(KeyEvent.VK_SPACE);
    r.keyRelease(KeyEvent.VK_SPACE);

    r.keyPress(KeyEvent.VK_SHIFT);
    r.keyPress(KeyEvent.VK_PERIOD);
    r.keyRelease(KeyEvent.VK_PERIOD);
    r.keyRelease(KeyEvent.VK_SHIFT);

    r.keyPress(KeyEvent.VK_SHIFT);
    r.keyPress(KeyEvent.VK_9);
    r.keyRelease(KeyEvent.VK_9);
    r.keyRelease(KeyEvent.VK_SHIFT);

这很痛苦且难以自动化。

所以我基本上是在要求已经实现了键入什么键以获得给定输出的逻辑。

【问题讨论】:

  • 最简单的方法可能是switch case

标签: java types keyboard awtrobot


【解决方案1】:

您可以将使用 JNativeHook 收集到的事件直接发送回GlobalScreen.postNativeEvent(...),甚至不用乱用 java.awt.robot 类

【讨论】:

    猜你喜欢
    • 2014-04-11
    • 2020-09-20
    • 2018-11-14
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    相关资源
    最近更新 更多