编写一种每分钟执行不同操作的方法

时间:2014-07-16 11:03:36

标签: java click awtrobot

我正在制作一个无限点击特定位置的程序。我使用以下代码将这些点击随机化:

public void leftClick() {
    int no = random.nextInt(5) + 1;
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(50 * no);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.delay(250 * no);
}

这是使用leftClick()方法的循环(整数o在程序中上面初始化):

while (running) {
        leftClick();            
        o++;
        System.out.println(new Date() + " " + o);
    }

在我的程序中实现时,此“点击”会一直打开,每次点击之间会有随机暂停。我对它进行了测试,结果是每分钟大约35-45次点击。有没有办法让我的程序点击例如,一分钟35次,然后下一次70-80?

4 个答案:

答案 0 :(得分:1)

这是一个选项:

public class Foo {
  long startTime = 0;
  long lastMinCount = 1;
  int multiplier = 50;

  public void leftClick() {
    long currentTime = System.currentTimeMillis();
    if (startTime==0) {
       startTime = currentTime;
    }
    else {
      if (currentTime / startTime > lastMinCount) {
         lastMinCount = currentTime / startTime;
         multiplier = 10 * (random.nextInt(5) + 1);
      }
    }
    int no = random.nextInt(5) + 1;
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(multiplier * no);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.delay(4 * multiplier * no);
  }
}

你可以试试这个

答案 1 :(得分:0)

要获取特定范围内的随机数,您可以执行以下操作:

给定范围[a,b](从a到b)包括以下内容:

  1. interval = b - a + 1
  2. randnumvalue = get random number from [0,0, 1.0)
  3. result = a + interval*randomvalue
  4. 要处理不同的范围,请保存开始时间并确定您所在的“分钟”并选择适当的范围以应用上述伪代码。

答案 2 :(得分:0)

您可以执行以下操作

 leftClick(boolean flag){
    int no = random.nextInt(10)
    if(flag == false){
    no = 35+ no;  // This will always give you a number between 35 and 45
    flag = true;
    }else{
    no = 70 + no;
    }
}

所以每当你用布尔值调用这个方法时,你得到35到45之间没有,否则70-80

答案 3 :(得分:0)

你可以这样做:

public void leftClick(int noOfClicksPerMinute) {
   if(noOfClicksPerMinute >35 && noOfClicksPerMinute < 45){
    int no = random.nextInt(35) + 10;
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(50 * no);//change and set appropriate delay
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.delay(250 * no);//change and set appropriate delay
}

else{

    int no = random.nextInt(70) + 10;
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(50 * no);//change and set appropriate delay
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.delay(250 * no);//change and set appropriate delay
}