|
|
|
|
@ -14,6 +14,7 @@ import org.sikuli.script.Region;
|
|
|
|
|
import org.sikuli.script.Screen;
|
|
|
|
|
import xyz.wbsite.jmacro.base.ColorLocation;
|
|
|
|
|
import xyz.wbsite.jmacro.base.Legend;
|
|
|
|
|
import xyz.wbsite.jmacro.util.ImageUtil;
|
|
|
|
|
import xyz.wbsite.jmacro.util.Logger;
|
|
|
|
|
import xyz.wbsite.jmacro.util.MousePathUtil;
|
|
|
|
|
import xyz.wbsite.jmacro.util.TaskUtil;
|
|
|
|
|
@ -21,6 +22,7 @@ import xyz.wbsite.jmacro.util.TaskUtil;
|
|
|
|
|
import java.awt.*;
|
|
|
|
|
import java.awt.datatransfer.Clipboard;
|
|
|
|
|
import java.awt.datatransfer.StringSelection;
|
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
@ -271,6 +273,7 @@ public abstract class JMacro {
|
|
|
|
|
mouseMove(location);
|
|
|
|
|
mouseRightClick();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 插入剪贴板
|
|
|
|
|
*/
|
|
|
|
|
@ -299,7 +302,7 @@ public abstract class JMacro {
|
|
|
|
|
/**
|
|
|
|
|
* 执行回车命令
|
|
|
|
|
*/
|
|
|
|
|
public void sendEnter() {
|
|
|
|
|
public void sendEnterCommand() {
|
|
|
|
|
screen.type(Key.ENTER);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -409,6 +412,27 @@ public abstract class JMacro {
|
|
|
|
|
return new Region(match.getRect());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 等待并查找图例
|
|
|
|
|
*
|
|
|
|
|
* @param legend 图例
|
|
|
|
|
* @param minSimilar 最低相似度
|
|
|
|
|
* @param timeout 超时时间(秒)
|
|
|
|
|
* @return 匹配区域
|
|
|
|
|
*/
|
|
|
|
|
public Region waitAndFindLegend(String legend, double minSimilar, long timeout) {
|
|
|
|
|
Logger.info("等待并查找图例:{}", legend);
|
|
|
|
|
return TaskUtil.timeTask(() -> {
|
|
|
|
|
while (JMainService.getInstance().run) {
|
|
|
|
|
Region result = findLegend(legend, minSimilar);
|
|
|
|
|
if (result != null) {
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}, timeout, TimeUnit.SECONDS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查找并点击图例
|
|
|
|
|
*
|
|
|
|
|
|