使用java.awt.Robot实现java版的自动点击事件
- 介绍:
最近遇到了一个需要人工点击的事情,很麻烦,于是找了一下资料,写了一个自动的鼠标点击的程序
使用的包:
java.awt.Robot
具体的代码
Robot robot = new Robot();
- //第一步,首先选择需要处理的类53\38
robotTest.clickMouse(robot, 310, i, times);//
robot.delay(500);
该代码的主要功能是鼠标进行点击屏幕上面的像素点;
- 第二步:关键方法:
robot.mouseMove(x, y);//鼠标的移动像素点,用于由于软件不能很敏感的识别鼠标的情况下使用的
robot.delay(times);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(delay);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(delay);
- 第三步:整个全部的代码:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
/**
* @author
* @date
*
description:Robot测试类,
*/
public class robotTest {
private static int times=250;
public robotTest() {
super();
}
public static void main(String[] args) {
int i = 113;
while (i < 950) {
try {
Robot robot = new Robot();
//第一步,首先选择需要处理的类53\38
robotTest.clickMouse(robot, 310, i, times);//
robot.delay(500);
//鼠标点击文件的位置
// robotTest.clickMouse(robot, 756, 250, 500);
robotTest.clickMouse(robot, 563, 273, times);
robot.delay(500);
//第二步,点击菜单里面的code,然后选择generate
//鼠标移动到坐标(635,454)
robotTest.clickMouse(robot, 196, 34, times);
robot.delay(500);
//第三步,选择code里面的generate
//鼠标移动到坐标(635,454)
robotTest.clickMouse(robot, 290, 117, times);
robot.delay(500);
//第四步,选择generate里面的tostring方法
//鼠标移动到坐标=文件的位置x+53,y+38
// robot.mouseMove(836, 292);
// robot.mouseMove(810, 290);
robot.mouseMove(616, 311);
robot.mousePress(InputEvent.BUTTON1_MASK);
//移动到tistring健
// robotTest.clickMouse(robot, 810, 393, 500);
robotTest.clickMouse(robot, 616, 411, times);
robot.delay(500);
//第四步,选择tostring方法里面的ok健
//鼠标移动到坐标(635,454)
robotTest.clickMouse(robot, 840, 771, times);
robot.delay(500);
//
robotTest.clickMouse(robot, 1217, 475, times);
robot.delay(500);
robotTest.clickMouse(robot, 1067, 475, times);
robot.delay(times);
i=i+20;
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void pressKey(Robot robot, int[] keys, int delay) {
for (int i = 0; i < keys.length; i++) {
robot.keyPress(keys[i]);
robot.keyRelease(keys[i]);
robot.delay(times);
}
//处理完需要延迟
robot.delay(delay);
}
public static void clickMouse(Robot robot, int x, int y, int delay) {
// robot.mouseMove(x, y);
robot.mouseMove(x, y);
robot.delay(times);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(delay);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(delay);
}
}
- 总结:
很多的时候,频繁的重复的鼠标点击工作,可以写一个小程序来处理,避免多余的人工浪费;但是
在开发的时候,还是需要频繁的调整一下延时或者移动鼠标等事件,避免屏幕识别出来,是程序在跑的;
- 点赞
- 收藏
- 关注作者
评论(0)