问题描述
我试图制作自动化软件,可以从剪贴板粘贴一些复制的数据,但会出现一些奇怪的行为。我使用 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
无法正常工作