You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SikuliX 2.0.5如何检测鼠标指针是空闲还是忙碌状态?

在SikuliX 2.0.5中检测鼠标指针状态的可行方案

方案1:基于图像识别检测忙碌指针

既然你明确点击后鼠标会变为忙碌状态(如沙漏/转圈图标),可以直接用SikuliX的图像匹配功能判断指针状态:

  1. 提前截取忙碌状态的鼠标指针图像(命名为busy_cursor.png)
  2. 在循环中检测该图像是否存在,以此区分空闲/忙碌状态

修改你的逻辑代码如下:

# 预先准备好忙碌指针的图像
busy_cursor = "busy_cursor.png"
is_idle = True

while is_idle:
    click("1733637249299.png")
    mouseMove(1, 0)
    # 快速检测是否出现忙碌指针,超时0.1秒
    busy_match = exists(busy_cursor, 0.1)
    is_idle = busy_match is None  # 未匹配到忙碌指针则判定为空闲
    wait(0.3)

方案2:调用Java AWT API获取指针类型

SikuliX基于Java,可直接调用java.awt包的API获取指针状态,无需额外导入win32gui:

from java.awt import MouseInfo, Cursor

def is_mouse_idle():
    current_cursor = MouseInfo.getPointerInfo().getCursor()
    # 空闲状态对应DEFAULT_CURSOR,忙碌状态对应WAIT_CURSOR
    return current_cursor.getType() == Cursor.DEFAULT_CURSOR

while is_mouse_idle():
    click("1733637249299.png")
    mouseMove(1, 0)
    wait(0.3)

注意事项

  • 方案2中,不同系统的Cursor类型ID有差异,Windows下WAIT_CURSOR值为3,DEFAULT_CURSOR值为0,可通过print(current_cursor.getType())打印当前状态ID确认
  • 如果Java Applet使用自定义指针导致AWT无法识别,优先选择方案1的图像识别,兼容性更可靠

内容的提问来源于stack exchange,提问作者user3103982

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:02:08