Robotクラス

Javaで、プログラムからマウスを動かしたりキーを入力したりするために
java.awt.Robotクラスというがあるらしい。
主な目的は「Java プラットフォーム実装テストを自動化すること by Javadoc」だそうだ。
試しにさわってみる。


まずは、こんなの。


public static void main(String[] args) throws Exception {
Robot robot = new Robot();
for (int i = 0; i < 10; i++) {
robot.mouseMove(i * 50, i * 50);
robot.delay(1000);
}
}
1秒おきにマウスが右斜め下に移動する。
それだけ。


次は、ちょっとマニアックなもの。


public static void main(String[] args) throws Exception {
Robot robot = new Robot();
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rectangle = new Rectangle(dimension);

String home = System.getProperty("user.home");
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");

for (int i = 0; i < 3; i++) {
BufferedImage image = robot.createScreenCapture(rectangle);
File output = new File(home, formatter.format(new Date()) + ".jpg");
ImageIO.write(image, "jpeg", output);
robot.delay(10000);
}
}
スクリーンショットを取得して、ホームディレクトリに画像を保存する。
Windouwsだったら、Documents and Settingsの下のユーザ名のディレクトリ。
テストのエビデンスを残すために、こんなメソッドが用意されているのかなぁ。


あとは、Robot#keyPressとかRobot#mousePressを使えば、
入力とかもできそうだけど、いいサンプルがないので省略。




マウスの位置とかは、座標で指定しなければならないので、固定の環境でしか
使用できないけど、ちょっと面白いかも。