From 36019fa33acc9d552d5d3eabe02eaf40483d3efd Mon Sep 17 00:00:00 2001 From: wangbing Date: Wed, 22 Oct 2025 10:32:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/xyz/wbsite/jmacro/JMacro.java | 26 ++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/xyz/wbsite/jmacro/JMacro.java b/src/main/java/xyz/wbsite/jmacro/JMacro.java index c0ed172..22a142b 100644 --- a/src/main/java/xyz/wbsite/jmacro/JMacro.java +++ b/src/main/java/xyz/wbsite/jmacro/JMacro.java @@ -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); + } + /** * 查找并点击图例 *