Robot类指南
- 该类用于生成本机系统输入事件,用于测试自动化,自运行演示以及需要控制鼠标和键盘的其他应用程序。Robot的主要目的是促进Java平台实现的自动化测试。
- 使用类生成输入事件与将事件发布到AWT事件队列或AWT组件不同,因为事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove实际上将移动鼠标光标,而不仅仅是生成鼠标移动事件。
构造方法
使用的方法
实现聊天轰炸器
- 具体实现细节我再代码里讲解的应该很详细, 但要注意程序运行开始前必须手动复制好要轰炸的信息 还要打开聊天框
import java.awt.*;
import java.awt.event.KeyEvent;
/**
* Created with IntelliJ IDEA.
* Description: If you don't work hard, you will a loser.
* 实现一个聊天轰炸器
* User: Listen-Y.
* Date: 2020-08-10
* Time: 8:58
*/
public class AutoBoom {
//设置轰炸的次数
private static int count = 10;
//设置每次循环的间隔时间
private static int time = 1000;
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
//使用这个程序必须先将轰炸的内容复制好然后打开聊天框
//所以预留5秒做准备
System.out.println("复制好内容打开聊天框五秒后进行轰炸");
for (int i = 5; i > 0; i--) {
System.out.println(i + "秒");
robot.delay(1000);
}
System.out.println("开始");
for (int i = 0; i < count; i++) {
//同时按下ctrl+v粘贴好 然后在同时释放ctrl+v
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
//让轰炸有间隔的进行
robot.delay(time);
//按下回车让信息发送
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
}
实现画图板画出奥运五环
- 如同上面的聊天轰炸 在这个代码运行开始之前也是要手动打开画图板 并且选择椭圆形
/**
* Created with IntelliJ IDEA.
* Description: If you don't work hard, you will a loser.
* 实现在画图板上画出奥运五环
* User: Listen-Y.
* Date: 2020-08-08
* Time: 8:49
*/
import java.awt.*;
import java.awt.event.InputEvent;
public class RobotDemo {
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
//等待5秒 5秒后必须打开画图板选中椭圆才可正常运行
robot.delay(5000);
//第一个圆
int i = 10;
while (i-- > 0) {
robot.mouseMove(400, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(100);
i = 10;
while (i-- > 0) {
robot.mouseMove(650, 550);
}
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(1000); //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程
//第二个圆
i = 10;
while (i-- > 0) {
robot.mouseMove(0, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
i = 10;
while (i-- > 0) {
robot.mouseMove(600, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(100); //这里延迟0.1s,可以看到动态画的过程
i = 10;
while (i-- > 0) {
robot.mouseMove(850, 550);
}
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(1000); //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程
//第三个圆
i = 10;
while (i-- > 0) {
robot.mouseMove(0, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
i = 10;
while (i-- > 0) {
robot.mouseMove(800, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(100); //这里延迟0.2s,可以看到动态画的过程
i = 10;
while (i-- > 0) {
robot.mouseMove(1050, 550);
}
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(200); //画完一个圆停止0.1s,否则因为计算机执行速度太快,看不到动态作图的过程
//第四个圆
i = 10;
while (i-- > 0) {
robot.mouseMove(0, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
i = 10;
while (i-- > 0) {
robot.mouseMove(500, 425);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(100); //这里延迟0.1s,可以看到动态画的过程
i = 10;
while (i-- > 0) {
robot.mouseMove(750, 675);
}
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(200); //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程
//第五个圆
i = 10;
while (i-- > 0) {
robot.mouseMove(0, 300);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK); //画完一个圆后在圆外面点一下鼠标,否则回拖动画的圆到下一个位置
i = 10;
while (i-- > 0) {
robot.mouseMove(700, 425);
}
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(100); //这里延迟0.1s,可以看到动态画的过程
i = 10;
while (i-- > 0) {
robot.mouseMove(950, 675);
}
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(200); //画完一个圆停止0.2s,否则因为计算机执行速度太快,看不到动态作图的过程
}
}