如何使用 Java 在 Windows 上触发本机粘贴事件

How to Trigger Native Paste Event on Windows with Java

我试图制作可以从剪贴板粘贴一些复制数据的自动化软件,但出现一些奇怪的行为。我使用 java.awt.Robot 来实现这一点。这是代码:

try{
    java.awt.Robot robot = new Robot();
    robot.setAutoDelay(250);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
}catch(AWTException ex){
    ex.printStackTrace();
}

如何使用 Java 在 Windows 上正确触发本机粘贴事件?

我刚刚解决了问题,粘贴事件按预期工作。因为我的项目使用 JavaFX,这里有 2 个解决方案使用 java.awt.Robot

try{
    java.awt.Robot r = new Robot();
    r.keyPress(KeyEvent.VK_CONTROL);
    r.keyPress(KeyEvent.VK_V);
    r.keyRelease(KeyEvent.VK_CONTROL);
    r.keyRelease(KeyEvent.VK_V);
}catch(AWTException e){
    e.printStackTrace();
}

javafx.scene.robot.Robot

javafx.scene.robot.Robot r = new javafx.scene.robot.Robot();
r.keyPress(KeyCode.CONTROL);
r.keyPress(KeyCode.V);
r.keyRelease(KeyCode.CONTROL);
r.keyRelease(KeyCode.V);

我选择使用javafx.scene.robot.Robot,因为在某些情况下java.awt.Robot无法正常工作