首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么`robot.keyRelease(KeyEvent.VK_CONTROL)`是必需的?

为什么`robot.keyRelease(KeyEvent.VK_CONTROL)`是必需的?
EN

Stack Overflow用户
提问于 2011-09-06 14:38:13
回答 2查看 10.6K关注 0票数 0

在使用Robot类时,以下内容的含义是什么:

代码语言:javascript
复制
robot.keyRelease(KeyEvent.VK_CONTROL);

下面的代码不应该足以发送事件吗?

代码语言:javascript
复制
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-06 14:57:46

keyPress将发送一个按键已被按下的事件。keyRelease将发送密钥已被释放的事件。如果你想模拟打字,你可能需要这样做:

代码语言:javascript
复制
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键。一般来说,机器人应该或多或少准确地模拟您作为用户所做的事情。

票数 1
EN

Stack Overflow用户

发布于 2014-05-06 20:46:19

代码语言:javascript
复制
robot.keyRelease(KeyEvent.VK_CONTROL); 

为了释放按键的按下效果,如果您使用robot.keyPress(KeyEvent.VK_CONTROL)按下了某个键,那么您也应该释放它,否则一旦您的java应用程序运行,您的键盘将继续按住Ctrl键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7315803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档