使用 Robot 类时,是什么意思:
robot.keyRelease(KeyEvent.VK_CONTROL);
下面的代码不应该足以发送事件吗?
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
keyPress
将发送一个按键被按下的事件。 keyRelease
将发送密钥已被释放的事件。如果您想模拟打字,您可能需要执行以下操作:
public class SuperRobot extends Robot {
public void typeKey(int keyCode) {
keyPress(keyCode);
delay(20);
keyRelease(keyCode);
}
}
public static void main(String[] args) {
try {
SuperRobot r = new SuperRobot();
// Now, let's press Ctrl+A
r.keyPress(KeyEvent.VK_CONTROL);
r.typeKey(KeyEvent.VK_A);
r.keyRelease(KeyEvent.VK_CONTROL);
} catch (Exception ex) { // Either AWTException or SecurityException
System.out.println("Oh no!");
}
}
请注意,要键入带有掩码的内容,例如 Ctrl+A,我们首先按下 Ctrl,然后模拟按下并释放 A,然后释放 Ctrl。作为一般规则,机器人应该或多或少准确地模拟您作为用户会做的事情。
robot.keyRelease(KeyEvent.VK_CONTROL);
对于释放按键的按下效果,如果您使用robot.keyPress(KeyEvent.VK_CONTROL); 按下了按键 然后你也应该释放它,否则一旦你的 java 应用程序运行,你的键盘将继续按下 CTRL 键。