読者です 読者をやめる 読者になる 読者になる

たかきろぐ

「自動運転」「情報系大学」「雑記」をだらだらと書いています

MENU

GUIツールのバッチ処理

まじめ まじめ-エンジニアリング-プログラムTIP まじめ-エンジニアリング まじめ-エンジニアリング-プログラムTIP-JAVA

一応ワエはエンジニア(プログラム)だ.

そして,このブログのメインは基本的にエンジニアリングと自動運転の技術の動向と筋トレと投資関連のことについて記述しようと始めたものだ.

なのに雑記ばかりなので,今回初めてプログラムのことに言及しようと思う.

といってもレベルは低いが...ほとんど備忘録である.

f:id:KennyT:20160308222744p:plain

今回問題になったのは実験ツールGUI操作を必要としていて,バッチファイルが組めなかったということ.夜とか土日に走らせたいのだけど,それができなかった.

 

ちょっと調べてみると,JAVA の Robot Class というクラスを見つけた.

Robot (Java Platform SE 8 )

 

とりあえず今回はマウス操作だけでよいので,なるべく簡単なメソッドを提供されているものがほしかった.JAVA の Robot Class はシンプルなメソッドのみが提供されていて,かなり簡単.

 

画面左上(0,0)からマウスポインタを右下に向かって動かし,(500,500)の位置でダブルクリックさせるサンプルコードが以下.

 

 

import java.awt.Robot;
import java.awt.event.InputEvent;

public class Test {

    public static void main(String[] args){
        try {
            Robot r = new Robot();

            for(int i=0; i < 500; i++){
                r.mouseMove(i, i);
                r.delay(10);
            }

            r.mousePress(InputEvent.BUTTON1_MASK);
            r.mouseRelease(InputEvent.BUTTON1_MASK);
            r.mousePress(InputEvent.BUTTON1_MASK);
            r.mouseRelease(InputEvent.BUTTON1_MASK);

        } catch(Exception e){
            e.printStackTrace();
            System.exit(0);
        }
    }
}

 

とっても簡単.

 

キーボード操作もkeyPressメソッドを利用するとできそうであるが,まだ試していない.

 

おそらくC++などでも同様の操作が行えるクラスが提供されていると思う.特にWin32APIだと,より高度なGUI操作が行えるかもしれない.が,今は必要ないので調査も何もしない.