# RustAutoScript **Repository Path**: LeiZhK/rust-auto-script ## Basic Information - **Project Name**: RustAutoScript - **Description**: RustAutoScript 是一款基于 Rust 编写的桌面端键鼠自动化工具。它允许用户录制键盘和鼠标操作、保存为脚本、回放执行,并支持通过 WebSocket 进行远程同步控制。 - **Primary Language**: Rust - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RustAutoScript > 轻量级键鼠自动化脚本工具 — 录制 · 回放 · 远程同步 ![GitHub](https://img.shields.io/badge/license-MIT-green) ![Rust](https://img.shields.io/badge/Rust-2021-orange) ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey) --- ## 概述 RustAutoScript 是一款基于 Rust 编写的桌面端键鼠自动化工具。它允许用户录制键盘和鼠标操作、保存为脚本、回放执行,并支持通过 WebSocket 进行远程同步控制。 ### 核心功能 | 功能 | 说明 | |------|------| | **📹 脚本录制** | 录制全局键鼠事件,保存为可编辑脚本 | | **▶ 脚本回放** | 以可调速度回放录制的脚本,支持循环播放 | | **🔗 远程同步** | 通过 WebSocket 实现主控端 ↔ 被控端远程控制 | | **🖥️ 服务端管理** | 内置 WebSocket 服务端,管理多客户端连接 | | **🗄️ 数据持久化** | 使用 SQLite 数据库存储脚本、配置和日志 | | **🔄 版本管理** | 服务端版本管理与客户端自动升级(开发中) | --- ## 截图 | 首页 | 脚本录制 | |:---:|:---:| | ![首页](images/5837dbe1-495a-48e1-8a69-a4f953e8b156.png) | ![脚本录制](images/356d7b70-5a58-4a60-9ad1-96bcb2c852d5.png) | | **远程同步** | **服务端管理** | | ![远程同步](images/60db0cf0-265d-4f5b-b237-a6deabf47f18.png) | ![服务端管理](images/1225a2d3-1707-4a41-9347-accc22cb6e03.png) | --- ## 快速开始 ### 系统要求 - Rust 1.70+ - Windows / Linux / macOS - Windows 下键鼠录制需要**管理员权限** ### 安装与运行 ```bash # 克隆仓库 git clone https://gitee.com/LeiZhK/rust-auto-script.git cd robot_autoscript # 编译(首次编译较慢,需下载依赖) cargo build --release # 运行 cargo run --release ``` ### 构建说明 ```bash # 调试模式(编译快,性能较低) cargo run # 发布模式(编译慢,性能最佳) cargo build --release # 仅运行测试 cargo test ``` --- ## 使用指南 ### 脚本录制 1. 打开 **脚本录制** 页面 2. 点击 **● 开始录制**,程序将捕获全局键鼠事件 3. 执行需要录制的操作 4. 点击 **■ 停止录制**,自动保存为脚本 5. 在脚本列表中选择已保存的脚本进行回放 ### 脚本回放 - 选择脚本后点击 **▶ 播放脚本** - 通过速度滑块调节 0.1x ~ 3.0x 倍速 - 勾选 **循环播放** 可反复执行 ### 远程同步 **主控端模式:** 1. 在需要被控制的设备上启动服务端 2. 在主控端输入服务端 WebSocket 地址 3. 选择 **主控端** 模式,点击连接 4. 连接成功后可直接向被控端发送操作指令 **被控端模式:** 1. 连接到主控端服务器 2. 接收来自主控端的指令并执行 --- ## 技术架构 ``` robot_autoscript/ ├── src/ │ ├── main.rs # 应用入口 + egui GUI │ ├── lib.rs # 库入口 │ ├── ui/ # UI 组件 │ │ └── mod.rs # 卡片首页 + 页面导航 │ ├── core/ # 核心业务 │ │ ├── event.rs # 事件模型定义 │ │ ├── recorder.rs # 键鼠录制引擎 │ │ └── player.rs # 脚本回放引擎 │ ├── network/ # 网络通信 │ │ ├── client.rs # WebSocket 客户端 │ │ └── server.rs # WebSocket 服务端 │ └── storage/ # 数据持久化 │ ├── database.rs # SQLite CRUD │ └── migrator.rs # 数据库迁移 └── Cargo.toml ``` ### 技术栈 | 技术 | 用途 | |------|------| | [Rust](https://www.rust-lang.org/) | 系统编程语言,内存安全、高性能 | | [egui](https://github.com/emilk/egui) | 即时模式 GUI 框架 | | [eframe](https://github.com/emilk/egui/tree/master/crates/eframe) | egui 原生窗口框架 | | [rdev](https://github.com/Narsil/rdev) | 跨平台全局键鼠事件监听 | | [Tokio](https://tokio.rs/) | 异步运行时 + WebSocket | | [rusqlite](https://github.com/rusqlite/rusqlite) | SQLite 数据库(bundled) | | [Serde](https://serde.rs/) | 序列化/反序列化 | --- ## 项目状态 - ✅ **Phase 0** — 基础功能与 Bug 修复(已完成) - ✅ **Phase 1** — SQLite 数据库层(已完成) - ✅ **Phase 2** — 卡片式 UI 重构(已完成) - ⏳ **Phase 3** — 版本管理与自动升级(开发中) - ⏳ **Phase 4** — 客户端自动更新(规划中) --- ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 --- ## 作者 - **leizk** — 初始开发与维护 --- *RustAutoScript — 让自动化更简单*