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()+"}");
   }

 

//==================================================================
//===================== 続きを読む