sikuliX javaAPI
package Sample;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Iterator;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.sikuli.basics.Settings;
import org.sikuli.script.App;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Location;
import org.sikuli.script.Match;
import org.sikuli.script.Region;
import org.sikuli.script.Screen;
public class Main{
public static Screen screen;
public static Region region;
static {
screen = new Screen();
region = screen;
}
public static void main(String[] args)throws IOException, InterruptedException {
clickCapture();
}
/**
* マウスポインタの移動速度を変更する。
* 高速:0
*数字が大きくなるにつれ遅くなる。
* @param count
*/
public static void setMoveMouseDelay(float count) {
Settings.MoveMouseDelay = count;
}
/**
* マウスポインタの移動速度を取得する。
*/
public static float getMoveMouseDelay() {
return Settings.MoveMouseDelay;
}
/**
*画像認識時の類似度を取得する。
*/
public static double getMinSimilarity() {
return Settings.MinSimilarity;
}
/**
*画像認識時の類似度を変更する。
* 0 ~ 0.99
*/
public static void setMinSimilarity(double count) {
Settings.MinSimilarity = count;
}
/**
*ディレクトリの作成
*@param 作成するディレクトリのパス
*@return 作成したディレクトリのパス
*/
public static String createDirectory(String path) throws RuntimeException{
try {
Files.createDirectories(Paths.get(path));
} catch (IOException e) {
throw new RuntimeException();
}
return path;
}
/**
* 時間文字列取得
* yyyy_MM_dd_HH_mm_ss
*/
public static String getTimeString() {
return getTimeString("yyyy_MM_dd_HH_mm_ss");
}
/**
* 時間文字列取得
*
* @param format
*/
public static String getTimeString(String format) {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
}
/**
* 画像認識時の認識範囲を表示
* @param r
* @return
*/
public static Region highlight(Region r) {
return r.highlight();
}
/**
* 指定した画像が画面内に複数ある場合、すべて取得する。
* @param path
* @return
*/
public static Iterator<Match> findAll(String path ) {
Iterator<Match> m = null;
try {
m = screen.findAll(path);
}catch(FindFailed e) {
e.printStackTrace();
}
return m;
}
/**
* 指定した複数画像の中で最も類似度の高い画像のMatchオブジェクトを返す。
* @param paths
* @return
*/
public static Match findBest(String... paths) {
return screen.findBest(paths);
}
/**
* メインディスプレイをキャプチャし、pathへ保存する。
* @param path
*/
public static void capture(String path) {
screen.capture().save(path,"{"+getTimeString()+"}");
}
//==================================================================
//=====================
続きを読む