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

请求实现YOLO检测目标上鼠标悬停自动左击功能

实现YOLO检测目标悬停时自动左键点击

原代码实现了按下CAPSLOCK键时将鼠标移动到YOLO检测目标位置,现在要改成鼠标悬停在检测目标范围内时自动执行左键点击,可以按下面的方式修改:

关键逻辑说明

  1. 获取当前鼠标的实时位置
  2. 判断鼠标是否落在YOLO检测出的目标边界框(坐标范围)内
  3. 加入状态标记避免重复触发连续点击

修改后的代码

# 初始化点击状态标记,防止重复点击
has_clicked = False

# 假设YOLO检测已给出目标的边界框坐标:xMin, xMax, yMin, yMax
# 获取当前鼠标位置
current_mouse_x, current_mouse_y = win32api.GetCursorPos()

# 判断鼠标是否在目标范围内
if (xMin <= current_mouse_x <= xMax) and (yMin <= current_mouse_y <= yMax):
    # 未点击过则执行完整左键点击动作
    if not has_clicked:
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        has_clicked = True
else:
    # 鼠标离开目标范围,重置点击标记
    has_clicked = False

# 保留原有的CAPSLOCK移动鼠标逻辑
if win32api.GetKeyState(0x14):
    win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, int(
        mouseMove[0] * aaMovementAmp), int(mouseMove[1] * aaMovementAmp), 0, 0)
last_mid_coord = [xMid, yMid]

注意事项

  • 确保YOLO输出的目标边界框坐标(xMin, xMax, yMin, yMax)是屏幕坐标系下的数值,和鼠标坐标的坐标系一致
  • has_clicked标记需要放在循环外初始化,避免每次循环重置导致重复触发点击

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:20:38