一个基于 Python 和 tkinter 的图形界面鼠标动作录制与回放工具。可以录制鼠标移动、点击、滚轮等操作,并支持精确回放。
-
🎥 录制功能
- 录制鼠标移动轨迹
- 录制鼠标点击(左键、右键、中键)
- 录制滚轮操作
- 可调节采样间隔,优化录制精度
-
▶️ 播放功能- 精确回放录制的鼠标操作
- 支持暂停/继续播放
- 支持循环播放模式
- 可调节播放速度(0.5x - 3.0x)
- 平滑移动模式,让鼠标轨迹更自然
-
💾 文件管理
- 保存录制为 JSON 格式
- 加载已保存的录制文件
- 自动创建
recordings目录保存文件
-
⌨️ 快捷操作
- 全局热键支持
- F7: 开始/停止录制
- F8: 开始/停止播放
-
📊 统计信息
- 显示录制动作数量
- 显示录制时长
- 统计各类操作数量
- Windows 操作系统
- Python 3.6 或更高版本
git clone https://github.com/yemingxin666/clickPlus.git
cd clickPlus# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# 安装依赖
pip install -r requirements.txtpip install -r requirements.txt双击运行 run_gui.bat 文件,程序会自动:
- 检查虚拟环境
- 启动图形界面
# 如果使用虚拟环境,先激活
venv\Scripts\activate
# 运行程序
python mouse_recorder_gui.py- 点击 "🔴 开始录制" 按钮或按 F7 键开始录制
- 执行你想要录制的鼠标操作(移动、点击、滚轮等)
- 点击 "⏹️ 停止录制" 按钮或再次按 F7 键停止录制
- 确保已有录制数据(可以通过录制或加载文件获得)
- 点击 "
▶️ 播放" 按钮或按 F8 键开始播放 - 点击 "⏸️ 暂停" 按钮可以暂停播放
- 点击 "⏹️ 停止" 按钮停止播放
- 保存录制:点击 "💾 保存录制" 按钮,选择保存位置,录制文件会保存为 JSON 格式
- 加载录制:点击 "📂 加载录制" 按钮,选择之前保存的 JSON 文件
- 🔄 循环播放:勾选后,播放完成后会自动重新开始
- 🎬 平滑移动:勾选后,鼠标移动会更加平滑自然
- ⚡ 播放速度:可选择 0.5x、1.0x、1.5x、2.0x、3.0x 等速度
- 🎯 采样间隔:调整录制时鼠标移动的采样间隔(默认 0.05 秒)
点击 "📊 统计信息" 按钮可以查看当前录制的详细信息,包括:
- 总动作数
- 移动事件数量
- 点击次数
- 滚轮操作次数
- 录制时长
项目依赖的 Python 包:
- pynput (>=1.7.6): 用于监听和控制鼠标、键盘操作
安装命令:
pip install pynput>=1.7.6或使用 requirements.txt:
pip install -r requirements.txtclickPlus/
├── mouse_recorder_gui.py # 主程序文件
├── requirements.txt # 依赖列表
├── run_gui.bat # Windows 启动脚本
├── recordings/ # 录制文件保存目录(自动创建)
├── README.md # 本文件(中文版)
└── README_EN.md # 英文版
- 录制精度:调整采样间隔可以控制录制的精度,较小的间隔会记录更多移动轨迹,但文件会更大
- 播放速度:对于重复性操作,可以使用较高的播放速度(如 2.0x 或 3.0x)来提高效率
- 平滑移动:开启平滑移动可以让鼠标轨迹更自然,但可能会稍微延长播放时间
- 循环播放:适用于需要重复执行的操作,如游戏挂机、自动化测试等场景
- 程序需要管理员权限才能完全控制鼠标(某些系统可能需要)
- 录制时请确保不要误触其他程序,以免录制到不需要的操作
- 播放时请确保目标窗口处于活动状态
- 建议在录制前先测试播放功能,确保程序正常工作
Q: 程序无法启动?
A: 请确保已安装 Python 3.6+ 和所有依赖包,检查虚拟环境是否正确创建。
Q: 录制没有反应?
A: 请确保程序窗口处于活动状态,并且没有其他程序占用鼠标事件。
Q: 播放时鼠标不移动?
A: 请检查是否有管理员权限,某些系统需要管理员权限才能控制鼠标。
Q: 热键不响应?
A: 请确保程序窗口处于活动状态,某些热键可能被其他程序占用。
本项目采用开源许可证,可自由使用和修改。
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请通过 GitHub Issues 联系。
享受自动化的乐趣! 🎉