Java提供操作鍵盤和鼠標的API,在java.awt.*
包中,官方API參見此處,下面是個簡單的例子:
package com.yeetrack.robot;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
/**
* Created with IntelliJ IDEA.
* User: victor
* Date: 13-9-26
* Time: 上午10:03
*/
public class RobotTest { public static void main(String[] args) throws AWTException, InterruptedException, IOException { Robot robot = new Robot(); //設置Robot產生一個動作后的休眠時間,否則執行過快 robot.setAutoDelay(1000); //獲取屏幕分辨率 Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); System.out.println(d);
//以屏幕的尺寸創建個矩形 Rectangle screenRect = new Rectangle(d); //截圖(截取整個屏幕圖片) BufferedImage bufferedImage = robot.createScreenCapture(screenRect); //保存截圖 File file = new File("screenRect.png"); ImageIO.write(bufferedImage, "png", file); //移動鼠標 robot.mouseMove(500, 500); //點擊鼠標 //鼠標左鍵 System.out.println("單擊"); robot.mousePress(InputEvent.BUTTON1_MASK); robot.mouseRelease(InputEvent.BUTTON1_MASK); //鼠標右鍵 System.out.println("右擊"); robot.mousePress(InputEvent.BUTTON3_MASK); robot.mouseRelease(InputEvent.BUTTON3_MASK); //按下ESC,退出右鍵狀態 System.out.println("按下ESC"); robot.keyPress(KeyEvent.VK_ESCAPE); robot.keyRelease(KeyEvent.VK_ESCAPE); //滾動鼠標滾軸 System.out.println("滾軸"); robot.mouseWheel(5); //按下Alt+TAB鍵(切換桌面窗口) robot.keyPress(KeyEvent.VK_ALT); for(int i=1;i<=2;i++) { robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); } robot.keyRelease(KeyEvent.VK_ALT); } }
本文摘自於: http://www.yeetrack.com/?p=700