robot.keyPress在游戏训练师

时间:2018-01-18 11:41:28

标签: java

我想为mount和blade创建一个游戏训练器,游戏本身就有欺骗功能,我想利用它。

例如,当你想增加你的钱时,你应该按 ctrl + x ,但它很无聊。

所以我创建了一个代码,如果你按 ctrl + x 100次,但它只工作一次而不是100次。

try {
    Robot robot = new Robot();
    robot.delay(5000);
    robot.keyPress(KeyEvent.VK_CONTROL);

    for(int y = 0; y < 100; y++)
    {
        robot.keyPress(KeyEvent.VK_X);
    }
} catch (AWTException e) {
    e.printStackTrace();
}

注意:

  1. 如果我把

    robot.keyPress(KeyEvent.VK_CONTROL)
    
    在for循环中

    ,代码将不起作用

  2. 如果我在代码中放置了任何robot.keyRelease,它就会停止工作

  3. 为什么它只是一次工作?

1 个答案:

答案 0 :(得分:0)

documentation,如果您按某个键,它将被按下直到您释放它。因此,如果您按Ctrl + X,然后在循环中按X,您将获得此Ctrl + X + X ...

try {
    Robot robot = new Robot();           
    robot.delay(5000);
    for(int y=0;y < 100 ; y++)
    {
      robot.keyPress(KeyEvent.VK_CONTROL);
      robot.keyPress(KeyEvent.VK_X);   

      robot.keyRelease(KeyEvent.VK_CONTROL);   
      robot.keyRelease(KeyEvent.VK_X);  
    }
    } catch (AWTException e) {
       e.printStackTrace();
    } 

编辑:

另外,正如XtremeBaumer在评论中所说的那样,如果你按下&#34;那么游戏可能会发现你在作弊。钥匙这么快。在每次迭代之间添加一些延迟会使它工作。