Java中Robot类位于java.awt.Robot,该类用于为测试自动化,自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件,Robot类的主要目的是便于Java平台实现自动测试。
Robot可以模拟鼠标和键盘的输入,相当于Java版的按键精灵。
给大家介绍下Jdk里很少用到的一个“机器人”类库-Robot。
闲话少说,先看API
类介绍
构造方法摘要和方法摘要
下面写了个例子
/**
* @description:
* @author: Janson Lin
* @time: 2021/6/8 9:23
*/
public class TestRobot {
/**
* x坐标
*/
private final static int x=1860;
/**
* y坐标
*/
private final static int y=35;
// 输入
private final static int []keys={
KeyEvent.VK_CAPS_LOCK,
KeyEvent.VK_J,KeyEvent.VK_A,KeyEvent.VK_V,KeyEvent.VK_A,KeyEvent.VK_ENTER,
KeyEvent.VK_J,KeyEvent.VK_A,KeyEvent.VK_N,KeyEvent.VK_S,KeyEvent.VK_O,KeyEvent.VK_N,KeyEvent.VK_ENTER,
KeyEvent.VK_L,KeyEvent.VK_I,KeyEvent.VK_N,KeyEvent.VK_ENTER,
KeyEvent.VK_CAPS_LOCK,
KeyEvent.VK_N,KeyEvent.VK_I,KeyEvent.VK_U,KeyEvent.VK_B,
KeyEvent.VK_SPACE
};
public static void main(String[] args) throws Exception{
// new一个机器人
Robot robot = new Robot();
// 模拟双击打开一个指定位置的文本文件
// 模拟移动鼠标到指定位置
robot.mouseMove(x,y);
// 休息0.1秒
robot.delay(100);
// 模拟双击打开文本文件
robot.mousePress(InputEvent.BUTTON1_MASK);
// 释放上面的点击
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
// 休息0.1秒
robot.delay(1000);
// 模拟输入文字
for(int i=0;i<keys.length;i++){
robot.keyPress(keys[i]);
robot.keyRelease(keys[i]);
robot.delay(100);
}
// 模拟保存
// 休息0.1秒
robot.delay(1000);
// 模拟 ctrl+s
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_S);
// 模拟释放 ctrl+s
robot.keyRelease(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_CONTROL);
}
}
现在介绍例子的使用方式
第一步:右击桌面,点击显示设置,获取电脑屏幕的分辨率。(这里的分辨率的作用是,机器人移动鼠标到对应的位置,我这里的屏幕分辨率是1920*1080,X轴的位置大概是1860,Y轴的位置大概是35)
第二步:在电脑右上角新建一个文件夹
第三步:执行TestRobot(执行前先把输入法设置为中文)
执行效果就有了。