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

使用Robot类的Java机器人

梁丘远航
2023-03-14

我正在尝试使用Robot类创建一个游戏机器人。我尝试了以下代码来执行鼠标的右键单击:

robot.mousePress(InputEvent.BUTTON3_MASK);
robot.mouseRelease(InputEvent.BUTTON3_MASK);

而且奏效了。

我正在客户端3D在线游戏上测试它。

按下键“1”应该在Game中执行某种移动,当我尝试下面的代码时,它不起作用:

robot.keyPress(KeyEvent.VK_1);
robot.keyRelease(KeyEvent.VK_1);

但当我在游戏中聊天时使用该代码时,它确实起了作用。

它被测试了一遍又一遍,我得到了同样的结果。

是我做错了什么吗?还是游戏发现我不是那个按下那个键的人。

共有1个答案

申屠宏胜
2023-03-14

你可能释放钥匙太快了。试着休眠30~60ms后再松开按键:

robot.keyPress(KeyEvent.VK_1);
try {
    Thread.sleep(50);
} catch(Exception e) {
    e.printStackTrace();
}
robot.keyRelease(KeyEvent.VK_1);
 类似资料:
  • 我们正在与IE和Java一起运行Selenium。单击web页面上的链接将打开一个新的IE页面,该页面显然不是IE驱动程序的子页面,因此我无法执行驱动程序。switchTo();这一页是一个表单,文件名和确定按钮为空白。以前的开发人员创建了一个robot类,并发送9个TAB键压事件以获得OK按钮,然后发送一个 现在我需要更改文件名中的值,所以我计算了制表符的数量,直到我到达文件,然后做一个退格键并

  • 问题内容: 我正在使用Java Robot类发送键事件。我尝试了功能。但是我不知道如何发送+ keyEvent。 问题答案:

  • 我有一个测试用例,需要在弹出的windows对话框中输入击键。当我在本地运行测试时,我可以使用Java robot类成功地将所需的击键输入到对话框中。但是,当我使用Selenium Grid 2运行测试时,机器人会在从我的Eclipse IDE执行测试的系统上执行击键,而不是在预期的远程测试节点上。 有人遇到过这个问题,或者对如何让机器人命令远程在测试节点上执行有什么建议吗?我认为java rob

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

  • 我想使用Java机器人类,以便将鼠标移动到一个链接上,动态地创建更多的内容。对于web交互,我使用Selenium WebDriver。 Selenium为getLocation函数引发错误: 有人知道我做错了什么吗?

  • 问题内容: 有人知道类似于JavaRobot的Python类吗? 具体来说,我想在Ubuntu中执行屏幕抓取,并最终跟踪鼠标单击和键盘按下(尽管这是一个稍微不同的问题)。 问题答案: 如果您有GTK,则可以使用gtk.gdk.Display类来完成大部分工作。它控制键盘/鼠标指针获取一组对象。