Java使用Robot操作鍵盤和滑鼠
阿新 • • 發佈:2019-01-30
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