Demo1
package com.wl.mini.action
import java.awt.AWTException
import java.awt.Dimension
import java.awt.Rectangle
import java.awt.Robot
import java.awt.Toolkit
import java.awt.event.InputEvent
import java.awt.event.KeyEvent
import java.awt.image.BufferedImage
import java.io.File
import java.io.IOException
import javax.imageio.ImageIO
public class RobotTest {
//27,747 坐标 是 win键
public static void main(String[] args) throws IOException {
try {
Robot robot
robot = new Robot()
robot.setAutoDelay(1000)
//获取屏幕分辨率
Dimension d = Toolkit.getDefaultToolkit().getScreenSize()
System.out.println(d)
//矩形
Rectangle screenRect = new Rectangle(d)
//截图
//capture 捕获, 引起,捕捉
BufferedImage bufferedImage = robot.createScreenCapture(screenRect)
File file = new File("d:/screenRect.png")
ImageIO.write(bufferedImage, "png", file)
//移动鼠标
robot.mouseMove(37, 747)
//点击鼠标
System.out.println("单击")
// BUTTON1_MASK 左击 BUTTON3_MASK 右击
//鼠标左键
robot.mousePress(InputEvent.BUTTON1_MASK)
robot.mouseRelease(InputEvent.BUTTON1_MASK)
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
// 设置 Robot产生一个动作后的休眠时间,否则执行过快
}
}
Demo2
package com.wl.mini.action;
/**
Java实现自动化_Robot类简单应用
* Robot类 :
*
* exec 函数声明:
* public Process exec (String command) throws IOException ,参数及功能说明:
* command: 一条指定的系统命令
* 功能:在单独的进程中执行指定的字符串命令
*
* keyPress 函数说明:
* public void keyPress(int keycode),参数及功能说明:
* keycode:要按下的键(例如,KeyEvent.VK_A)
* 功能:模拟按下指定键
*
* keyRelease 函数说明:
* public void keyRelease(int keycode),参数及功能说明:
* keycode:要释放的键
* 功能:模拟释放指定键
*
* @param tovep
*/
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class RobotTest2 {
public static void main(String[] args) {
try{
Robot robot = new Robot();
/**
*
* 利用Runtime类运行Word程序的方法为:
* Runtime.getRuntime().exec("cmd /c start winword"); // 命令行 start winword
* 括号里的是系统命令
*
*/
Runtime.getRuntime().exec("cmd /c start notepad");
robot.delay(3000);
pressKeyWithCtrl(robot,KeyEvent.VK_SPACE);
for(int i=0;i<100;i++){
pressKey(robot, (int) (Math.random()* 25) + 'A');
pressKey(robot,KeyEvent.VK_SPACE);
}
robot.delay(5000);
closeApplication(robot);
}catch (Exception e){
System.out.println(e.getMessage());
}
}
public static void pressKey(Robot robot, int keyvalue){
robot.keyPress(keyvalue);
robot.keyRelease(keyvalue);
}
public static void pressKeyWithCtrl(Robot robot, int keyvalue){
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(keyvalue);
robot.keyPress(keyvalue);
robot.keyRelease(KeyEvent.VK_CONTROL);
}
public static void closeApplication(Robot robot){
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_F4);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_F4);
robot.keyPress(KeyEvent.VK_N);
robot.keyRelease(KeyEvent.VK_N);
}
}