当前位置: 首页 > 知识库问答 >
问题:

如何让Java机器人按住钥匙?

方鸿羲
2023-03-14

我想用Java robot按住一把钥匙一段时间。我读过其他类似的文章,但都不管用。反复按键只会导致按键无法释放。

以下是我到目前为止的代码(由于只按了一次键,所以无法工作):

new Thread(new Runnable() {
         public void run() {
             final int keyP = 0; //the key to press

                            final int duration = 2000 //2 seconds
                            Robot r = null;
                            try {
                                r = new Robot();
                            } catch (AWTException e1) {
                                                        e1.printStackTrace();
                            }
                            r.keyPress(keyP);
                            r.delay(duration); //Thread.sleep does the same thing
                            r.keyRelease(keyP);

                            }
                 }).start();

共有1个答案

宰父子安
2023-03-14

尝试:

boolean keepPressing=true;
long startTime = System.currentTimeMillis();
long endTime=null;
long totalTime=null;

while(keepPressing){
    r.keyPress(keyP);
    endTime=System.currentTimeMillis();
    totalTime = endTime - startTime;
    if(totalTime>1999) {
      keepPressing=false;
      r.keyRelease(keyP);
    }
}
 类似资料:
  • 问题内容: 目前,我正在尝试让Java按下如下键: 按下Enter键3秒钟左右,将导致重复效果。换句话说,如果要手动按住“ r”键,它将首先键入r,然后大约一秒钟后,它会像rrrrrrrr一样。我想要机器人的这种效果。我也尝试过: 但是,这非常敏感,持续时间为1秒…输出,以及计算机在一秒钟内可以完成的所有操作。千行价值。这不是我的意图。有任何想法吗?谢谢! PS我想要这种行为的原因是因为我正在编写

  • 在我的不和谐中,我有几个角色,比如“所有者”、“成员”和“监狱”。我希望bot只能由“所有者”角色访问,并希望命令如下所示:。监狱@user。然后机器人应该去掉“成员”角色,给他们“监狱”角色。 不和谐服务器最新更新请在此输入图像描述

  • 问题内容: 使用该方法时,需要将哪种代码传递给JavaFX Robot ? 例如,下面的示例输入,而不是,因此我想某处有一个映射。 注意:这是JavaFX机器人,而不是AWT机器人。 问题答案: 代码在javafx.scene.input.KeyCode中定义为常量。 使用玻璃机器人,您可以使用不推荐使用的方法: 您也可以使用FXRobot,它以KeyCodes作为参数:

  • 我正在尝试让我的discord机器人连接到一个语音频道,目前如下所示: 基本上,当他们发送消息时,我希望它加入消息作者的语音频道“-skip”,然后我的机器人加入,在聊天中说-p scotland forever,然后离开。我收到一条错误消息,说“频道”未定义或“连接”未定义,我尝试了几种不同的方法,我想我只是没有导入插件或其他东西,这可能是我的问题,但我知道应该使用什么插件。任何帮助都将不胜感激

  • 我有一个关于不和的问题。皮耶。我运行我的bot所在的两个独立服务器:测试服务器和主服务器。问题是,当我在测试服务器中发送消息时,bot会将其消息发送到主服务器,而不会将其发送回调用命令的服务器(仅在函数中)。 例如: 如果我在测试服务器中键入上述内容,我的bot将以“你好!”在测试服务器中。但是,如果我尝试将此代码放入函数并调用它: 通道ID显然设置为特定服务器。因此,假设我将ID“1234”作为

  • 我试图在一个新的monodroid项目中引用servicestack DLL,但我遇到了构建错误。 我从这里抓取了DLL: https://github.com/ServiceStack/ServiceStack/tree/master/release/latest/MonoDroid 我得到了错误 /Library/Frameworks/Mono.framework/Versions/2.10.