1.Robot类的介绍
此类用于生成本机系统输入事件,用于测试自动化,自动运行演示和需要鼠标和键盘控制的其他应用程序。 Robot的主要目的是为了方便Java平台实现的自动化测试。
使用类生成输入事件不同于将事件发布到AWT事件队列或AWT组件,因为事件在平台的本机输入队列中生成。 例如, Robot.mouseMove实际上将移动鼠标光标,而不是仅生成鼠标移动事件。
请注意,某些平台需要特殊权限或扩展才能访问低级别的输入控制。 如果当前平台配置不允许输入控制,一个AWTException将尝试构建机器人对象时抛出。 例如,如果X服务器不支持(或未启用)XTEST 2.2标准扩展名,则X-Window系统将抛出异常。
使用Robot进行自检以外的其他应用程序应优先处理这些错误条件。
可以直接采用构造方法创建Robot实例
Robot robot=new Robot();
2.常用API介绍
3.获取坐标
Point location = MouseInfo.getPointerInfo().getLocation();
int x = location.x;
int y = location.y;
System.out.println(x+","+y);
将上序程序启动后,将鼠标移动到需要获取坐标的位置,程序运行结束后将会鼠标当前的x,y坐标输出在控制台。
4.代码展示
这里的x,y是获取的某一位微信好友或qq好友的坐标位置,读者可以自行通过上述代码获取;
package com.xing;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RobotDemo02 {
public static void main(String[] args) {
try {
Robot robot = new Robot();
//使用List集合存储用Robot机器人自动敲击的字母所对应的keycode
List<Integer> list= Arrays.asList(87,79,65,73,78,73);
/*
* 87 w
* 79 o
* 65 a
* 73 i
* 78 n
* 73 i
* */
int x=414;
int y=232;
robot.mouseMove(x,y);
for(int i=0;i<list.size();i++){
robot.keyPress(list.get(i));
robot.keyRelease(list.get(i));
robot.delay(1000);
}
//按下空格
robot.keyPress(KeyEvent.VK_SPACE);
//释放空格
robot.keyRelease(KeyEvent.VK_SPACE);
//延迟1s
robot.delay(1000);
按下回车
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (Exception e) {
e.printStackTrace();
}
}
}
按照上述步骤就可以实现用Robot实例自动给心爱的人发送我爱你了;当然,如果在最外层加一个for循环,只需要每次改变高度y的值(大概一个微信好友所占的高度为130px左右,读者需要根据自己的电脑计算),就可以实现自动群发消息了