在日常办公、游戏脚本测试或重复性操作中,频繁点击鼠标往往让人疲惫不堪。今天给大家带来一款自研的 Python 鼠标自动化工具,支持高精度录制、贝塞尔曲线平滑回放、热键控制、脚本管理等功能,完全开源,适合二次开发。
📌 项目简介
这是一个基于tkinter+pynput+pyautogui开发的桌面级鼠标自动化工具,核心特性包括:
✅鼠标移动 / 点击 / 键盘按键录制
✅贝塞尔曲线插值,轨迹丝滑自然
✅多档回放速度(0.5x ~ 20x)
✅无限循环 + 自定义间隔
✅F8/F9/F10 全局热键控制
✅脚本保存 / 加载 / 编辑 / 导出为 Python
✅实时性能监控(CPU / 内存)
✅紧急停止(鼠标移至左上角)
🖼️ 界面预览
🖱 办公自动化鼠标工具 v2.0 ├── 📁 脚本管理 ├── 📹 录制控制(F8) ├── ▶️ 回放设置(F9/F10) ├── 📄 脚本内容预览 └── ⚡ 性能监控界面简洁直观,无需命令行,小白也能轻松上手。
🧠 核心技术解析
1️⃣ 贝塞尔曲线平滑移动(重点)
传统鼠标回放往往是“跳变式”的,不够自然。本工具采用二次贝塞尔曲线插值算法:
@staticmethod def bezier_interpolation(p0, p1, steps=12): dx, dy = x1 - x0, y1 - y0 control_x = (x0 + x1) / 2 - dy * 0.1 control_y = (y0 + y1) / 2 + dx * 0.1通过动态控制点,模拟人手微颤效果,回放轨迹更加真实、顺滑。
2️⃣ 高精度回放(纳秒级)
start_time = time.perf_counter_ns() / 1e9 while time.perf_counter_ns() / 1e9 < target_time: pass相比time.sleep(),使用perf_counter_ns实现微秒级等待,避免累计误差,特别适合高频操作场景。
3️⃣ 多线程 + 线程安全设计
录制 / 回放 / 性能监控分别运行在独立线程
使用
threading.Lock和threading.EventUI 更新统一通过
root.after(),避免 Tkinter 线程冲突
4️⃣ 智能事件过滤
if dist < 3: return录制时自动过滤微小抖动,减少无效事件,提升回放效率。
🛠️ 安装依赖
pip install pynput pyautogui psutil pillow⚠️ 注意:Windows 用户建议以管理员权限运行,macOS 需在「辅助功能」中授权终端/IDE。
🚀 快速使用
1️⃣ 启动程序
python mouse_recorder.py2️⃣ 录制操作
按F8 或点击「开始录制」
执行鼠标 / 键盘操作
再次按F8 停止
3️⃣ 回放操作
设置回放速度与循环模式
按F9 开始回放
F10 暂停 / 继续
再次F9 停止
4️⃣ 脚本管理
💾 保存为
.mrs脚本文件📂 加载已有脚本
✏️ 直接编辑 JSON 事件
📤 导出为独立
.py脚本
💡 实用场景
场景 | 用途 |
|---|---|
办公自动化 | Excel 批量点击、表单填写 |
游戏辅助 | 挂机任务、重复刷怪 |
软件测试 | UI 自动化回归测试 |
教学演示 | 自动演示操作流程 |
RPA 原型 | 快速验证自动化流程 |
🔐 安全机制
✅ 鼠标移至屏幕左上角 → 紧急停止
✅ 录制最长 5 分钟自动终止
✅ 事件坐标合法性校验
✅ 异常捕获 + UI 友好提示
📦 导出 Python 脚本示例
导出的脚本可直接运行,不依赖 GUI:
import pyautogui import time actions = [ ('move', 100, 200, 0.5, None), ('click', 100, 200, 0.0, 'left'), ] for action_type, x, y, delay, param in actions: time.sleep(delay) if action_type == 'move': pyautogui.moveTo(x, y)非常适合嵌入到更大的自动化系统中。
🧩 可扩展方向
🔹 加入 OCR / 图像识别(OpenCV)
🔹 支持条件判断(if 颜色 / 文本存在)
🔹 增加鼠标滚轮录制
🔹 打包为 exe(PyInstaller)
🔹 添加插件系统
📝 总结
这款工具从工程实用性出发,兼顾了性能、稳定性与用户体验。无论你是办公族、测试工程师,还是 Python 爱好者,都能从中受益。
如果你喜欢这个项目,欢迎Star / Fork / 提 Issue 👏
也欢迎在评论区分享你的使用场景!
🔗 源码获取
👉 完整代码已贴出(见正文)
👉 CSDN 同步发布,欢迎关注我的博客获取更多自动化实战内容
关键词:Python 自动化、鼠标录制、pynput、pyautogui、RPA、Tkinter、贝塞尔曲线、办公效率
需要我为你补充打包成 exe 的教程、GitHub README,或增加图像识别功能吗?欢迎继续交流 😊