桌面端RPA自动化,鼠标移动点击太机械怎么破?随机取点、贝塞尔移动、光标检测三步走

上一篇 RPA跑网页自动化,鼠标怎么走得更像真人一点?三层方案实现随机移动轨迹+随机点击空白区域 讲了网页端的方案,在DOM里扫描安全空白区域,用贝塞尔曲线移过去,光标兜底检测再点。

那桌面软件端怎么办?

思路其实没变,和网页端一样,先找一个安全点,再决定要不要点击。但因为桌面端没有DOM,第一步无法做精细扫描,只能退而求其次。下面我们看一下整体思路。

第1层 在区域内随机生成坐标

这是桌面端和网页端最大的不同。

网页端能透视DOM结构,精细排除链接、按钮、表单,只点空白区域。但Win窗口里的元素,影刀能拿到的只是一个矩形坐标,我们只能从坐标字符串里解析出 left、top、right、bottom 四个值,用random.randint在范围内取任意坐标。

对【空白坐标点击次数】有进一步要求的人来说,精度会下降,这部分风险统一交给第三层的光标兜底来处理。

核心代码:

python 复制代码
import random
import re

from typing import *
try:
    from xbot.app.logging import trace as print
except:
    from xbot import print


def generate_random_coordinate_from_rect(rectangle_str):
    """
    title: 在矩形区域内生成随机坐标
    description: 从输入的矩形描述字符串中解析出坐标范围,
                 并在该范围内生成一个随机的绝对屏幕坐标。
    inputs:
        - rectangle_str (str): 矩形区域描述字符串,
          eg: "Rectangle(left=4, top=149, right=1421, bottom=848, ...)"
    outputs:
        - random_coord (dict): {"随机X坐标": 560, "随机Y坐标": 420}
    """

    def _parse_rectangle(rect_str: str):
        patterns = {
            'left': r'left=(\d+)',
            'top': r'top=(\d+)',
            'right': r'right=(\d+)',
            'bottom': r'bottom=(\d+)'
        }
        
        results = {}
        for key, pattern in patterns.items():
            match = re.search(pattern, rect_str)
            if match:
                results[key] = int(match.group(1))
            else:
                raise ValueError(f"无法在输入字符串中找到字段: {key}")
        
        return results

    coords = _parse_rectangle(str(rectangle_str))
    
    left = coords['left']
    top = coords['top']
    right = coords['right']
    bottom = coords['bottom']

    random_x = random.randint(left, right)
    random_y = random.randint(top, bottom)

    return {
        "随机X坐标": random_x,
        "随机Y坐标": random_y
    }

第2层 贝塞尔曲线移动

这一层和网页端完全一样,不复述了。

用的同一个魔法指令,自动侦测系统DPI缩放、多点贝塞尔路径规划、1.5秒高频插值移动。不管台式机还是笔记本,坐标都能精准落地。

原理和代码见上一篇的第二层部分。

第3层 手掌光标兜底检测

这一层也和网页端完全一样。

调用同一个 Windows 底层 API GetCursorInfo,实时判断光标是不是手掌形态。是手掌,说明当前坐标落在可交互元素上,跳过重来;不是手掌,确认安全,执行点击。

这一步对桌面端尤其关键。正是因为第一层不做DOM扫描、纯随机,误判的概率比网页端高。光标兜底检测就是那道安全网,把随机到的「不该点的地方」过滤掉。

三层串起来,桌面端的整体流程可以压缩为一条执行链:激活窗口,获取元素矩形,循环尝试(比如10次),随机取点,贝塞尔移动,等待2秒,光标检测,决定是否点击。是手掌跳过,不是就点。

上一篇讲了网页端的三层方案,这篇补上了桌面端。两篇合在一起,不管操作的是网页还是桌面软件,鼠标都能走得更像个真人。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标?~

谢谢你看我的文章,我们下篇分享再见。

-END-

  • 爱练字的ISTJ型互联网人/信息整合怪/工具人/影刀高级认证工程师。
  • 专注分享:RPA&AI自动化场景提效方案、效率软件安利、实用技能。"所有的生产要素都可以被构建,只有认知是壁垒",欢迎関注 @掌心向暖RPA自动化

推荐阅读:

  • 拒绝品牌碰瓷!如何通过影刀RPA为品牌IP搭建一套高效的"内容合规治理"工作流?
  • 那些拥有上千浏览器书签/收藏夹的电脑用户,是怎么管理书签的?
  • 不会编程的我开发了一款近900行指令的自动化RPA应用,完美解决98%以上复制受限的飞书文档!
  • 飞书文档附件文件下载RPA方案2.0来了!不仅是PDF,Word、PPT、Excel、视频都能批量导出了,还都是源文件
相关推荐
曦尧5 小时前
OmniRoute:用“免费配额聚合 + 自动故障切换“压低 AI 调用成本的开源网关
ai·自动化
A洛5 小时前
Codex 实战:一句话完成 Temu 商品图采集与印花抠图自动化
运维·人工智能·自动化·codex
Urbano6 小时前
服装工厂卫衣量产提质增效方案:工序自动化替代、产能优化、多品牌设备选型及落地案例
运维·自动化
GlobalSign数字证书6 小时前
自动化时代,如何高效部署SSL证书?
运维·自动化·ssl
AC赳赳老秦8 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
D2aZXN3FhrDa7e21213 小时前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
蓝创工坊Blue Foundry15 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
见合八方16 小时前
【噪声系数】高偏SOA噪声系数测试方法
网络·自动化·soa·光通信·激光雷达·半导体光放大器
曦尧16 小时前
Microsoft Ontology Playground:面向 Fabric IQ 的零后端本体可视化学习平台
ai·自动化
AlanBruce18 小时前
从串口仪表到西门子PLC:摩尔信使MThings的多协议设备接入能力
自动化·plc·modbus·mthings·摩尔信使·西门子s7