前言
将当前的程序(thread)休眠(sleep)若干毫秒(ms)。可以来控制程序的延迟。
void delay(int me)
取得给定屏幕坐标位置的颜色值。
Color getPixelColor(int x, int y)
用来产生指定键的按下与抬起动作,相当于win32 API的 keyb_event 函数,可用于程序的自动演示,测试等。
void keyPress(int keycode)
void keyRelease(int keycode)
将鼠标的光标移到指定的屏幕坐标,可用于程序的自动演示,测试等。
void mouseMove(int x, int y)
下面这三种方法,产生指定鼠标按钮的按下、抬起、及滚轮动作,一样也可用于程序的自动演示、测试等。
void mousePress(int button) // 按下
void mouseRelease(int button) // 抬起
void mouseWheel(int wheelAmt) // 滚轮 输入的值为几,就代表鼠标滚轮滚几下
KeyEvent这个类封装了很多键盘上按键的ASCII码值 对于的调用就是KeyEvent.VK_?
比如A:KeyEvent.VK_A
keyEvent封装的ASCII码里字母都是用大写字母的ASCII值。
---------------------------------------------------------------------
InputEvent封装了鼠标的ASCII码,同理用法也是差不多的。
比如:InputEvent.BUTTON1_MASK 左键
按钮的运用
import java.awt.*;
import java.awt.event.KeyEvent;
public class Test1 {
public static void main(String[] args) throws AWTException {
// 创建一个java机器人对象
Robot robot = new Robot();
// 延时5秒执行
robot.delay(5000);
// 按下k键
robot.keyPress(KeyEvent.VK_K);
// 延时0.3秒执行
robot.delay(300);
// 弹起k键
robot.keyRelease(KeyEvent.VK_K);
}
}
鼠标的运用
import java.awt.*;
import java.awt.event.InputEvent;
import java.util.Random;
public class Test2 {
public static void main(String[] args) throws AWTException {
// 创建一个java机器人对象
Robot robot = new Robot();
// 创建一个随机函数对象
Random random = new Random();
// 延迟5秒钟
robot.delay(5000);
// 移动鼠标到右下角
robot.mouseMove(980,1000);
robot.delay(1000);
// 按下鼠标
// InputEvent.BUTTON1_DOWN_MASK 左键
// InputEvent.BUTTON2_DOWN_MASK 中键
// InputEvent.BUTTON3_DOWN_MASK 右键
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
//按下弹起间隔时间不一定都是0.3秒,而是一个随机数 0.2到0.4
double v = 0.2 + random.nextDouble()*(0.4-0.2);
v = v * 1000;
System.out.println(v);
robot.delay((int)v);
// 弹起鼠标
// InputEvent.BUTTON1_MASK 左键
// InputEvent.BUTTON2_MASK 中键
// InputEvent.BUTTON3_MASK 右键
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
}
获取屏幕颜色
import java.awt.*;
public class Test3 {
public static void main(String[] args) throws AWTException {
// 创建一个机器人类
Robot robot = new Robot();
Color pixelColor = robot.getPixelColor(980, 900);
System.out.println(pixelColor.getRed());
System.out.println(pixelColor.getGreen());
System.out.println(pixelColor.getBlue());
}
}
截图
BufferedImage bufferedImage=robot.createScreenCapture(new Rectangle(100,100,500,500));
File f=new File("D:\\save.jpg");
OutputStream os=new FileOutputStream(f);
ImageIO.write(bufferedImage, "jpg", os);
测试
import java.awt.*;
import java.awt.event.InputEvent;
import java.util.Random;
public class Test4 {
public static void main(String[] args) throws AWTException {
// 创建一个机器人类
Robot robot = new Robot();
// 创建一个随机函数对象
Random random = new Random();
robot.delay(5000);
while(true)
{
// 按下鼠标
robot.mousePress(InputEvent.BUTTON2_DOWN_MASK);
//按下弹起间隔时间不一定都是0.3秒,而是一个随机数 0.2到0.4
double v = 0.2 + random.nextDouble()*(0.4-0.2);
v = v * 1000;
System.out.println(v);
robot.delay((int)v);
// 弹起鼠标
robot.mouseRelease(InputEvent.BUTTON2_MASK);
// 间隔时间
double v2 = 3 + random.nextDouble()*(6-3);
v2 = v2 * 1000;
System.out.println(v2);
robot.delay((int)v2);
}
}
}