# RobotAutoScript **Repository Path**: LeiZhK/RobotAutoScript ## Basic Information - **Project Name**: RobotAutoScript - **Description**: 基于Robot以及Javax UI实现脚本录制以及播放 应用于多种场景,游戏自动化操作,自动化测试 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-17 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RobotAutoScript ![License](https://img.shields.io/badge/License-MIT-blue.svg) ![Java Version](https://img.shields.io/badge/Java-1.8+-brightgreen.svg) ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7.x-orange.svg) ![WebSocket](https://img.shields.io/badge/WebSocket-1.5.2-lightgrey.svg) RobotAutoScript 是一款轻量级自动化键鼠操作工具,采用客户端-服务端(C/S)架构设计,专注于键鼠操作的录制、播放、远程同步与管理。客户端基于 Java 原生 Swing/AWT 构建可视化界面,支持本地脚本录制与播放;服务端基于 Spring Boot + WebSocket 实现,提供跨设备的连接管理、消息转发与操作同步能力,适用于自动化办公、远程协助、重复性操作执行等场景。 ## 🎯 核心功能特点 ### 1. 本地脚本管理 - **精准键鼠录制**:基于 `nativehook` 原生钩子库捕获鼠标移动、点击、滚轮滚动,键盘按下/释放等所有操作,记录操作时间戳、坐标、按键值等关键信息; - **灵活脚本播放**:支持脚本单倍速/倍速(0.5x-3x)播放,支持播放暂停、断点续播、循环播放,适配不同分辨率屏幕的坐标自动校准; - **脚本持久化**:录制的脚本以 JSON 格式本地存储,支持脚本重命名、删除、导出/导入,方便跨设备共享; - **操作过滤**:可自定义过滤无效操作(如鼠标微小移动、误触按键),精简脚本内容。 ### 2. 远程同步与控制 - **WebSocket 实时通信**:客户端与服务端建立长连接,实现键鼠操作的低延迟(≤100ms)双向同步; - **多客户端连接**:服务端支持同时接入多个客户端,可指定“主控端”与“被控端”,实现一对多操作同步; - **连接状态监控**:客户端实时显示连接状态,服务端记录所有客户端的连接/断开日志,便于运维管理; - **权限控制**:服务端可配置客户端权限(仅查看/可操作),防止非法远程控制。 ### 3. 可视化交互与日志 - **友好图形界面**:基于 Swing 开发的客户端界面,布局清晰,支持脚本列表、操作日志、连接配置等功能模块一键切换; - **实时日志记录**:详细记录脚本录制/播放、连接建立/断开、操作执行等日志,支持日志筛选、导出,便于问题排查; - **操作提示**:关键步骤(如录制开始/停止、连接成功/失败)提供弹窗提示与音效反馈,提升操作体验。 ## 📂 项目结构 ``` RobotAutoScript/ ├── client/ # 客户端模块 │ ├── src/main/java/com/leizk/ │ │ ├── MainWindow.java # 客户端主界面入口类 │ │ ├── recorder/ # 键鼠录制核心逻辑 │ │ ├── player/ # 脚本播放核心逻辑 │ │ ├── websocket/ # WebSocket 客户端连接逻辑 │ │ └── ui/ # Swing 界面组件(按钮、面板等) │ └── pom.xml # 客户端 Maven 依赖 ├── server/ # 服务端模块 │ ├── src/main/java/com/leizk/ │ │ ├── MainServer.java # 服务端启动入口类 │ │ ├── config/ # WebSocket 配置类 │ │ ├── handler/ # WebSocket 消息处理逻辑 │ │ └── service/ # 连接管理、消息广播服务 │ └── pom.xml # 服务端 Maven 依赖 └── README.md # 项目说明文档 ``` ## 🚀 安装与运行 ### 环境准备 - 操作系统:Windows/Linux/macOS(`nativehook` 库在 Windows 下兼容性最佳); - JDK 版本:1.8 或更高版本(推荐 JDK 11); - 构建工具:Maven 3.6+(可选,也可直接运行编译后的 JAR 包)。 ### 客户端(client)运行 #### 方式 1:IDE 直接运行 1. 下载项目源码: ```bash git clone https://gitee.com/LeiZhK/RobotAutoScript.git cd RobotAutoScript/client ``` 2. 使用 IntelliJ IDEA/Eclipse 导入 client/pom.xml 作为 Maven 项目; 3. 等待 Maven 自动下载依赖(nativehook、gson 等); 4. 找到 com.leizk.MainWindow 类,右键执行 main 方法,启动客户端界面。 #### 方式 2:打包为可执行 JAR 运行 1. 在客户端目录执行 Maven 打包命令: ```bash mvn clean package -DskipTests ``` 2. 进入 target 目录,运行打包后的 JAR 包: ```bash java -jar RobotAutoScript-Client-1.0.jar ``` ### 服务端(server)运行 #### 方式 1:IDE 直接运行 1. 进入服务端目录: ```bash 运行 cd RobotAutoScript/server ``` 2. 使用 IntelliJ IDEA/Eclipse 导入 server/pom.xml 作为 Maven 项目; 3. 等待 Maven 自动下载 Spring Boot、WebSocket 等依赖; 4. 找到 com.leizk.MainServer 类,右键执行 main 方法,启动服务端(默认端口:8080)。 #### 方式 2:打包为可执行 JAR 运行 1. 在服务端目录执行 Maven 打包命令: ```bash 运行 mvn clean package -DskipTests ``` 2. 进入 target 目录,运行打包后的 JAR 包: ```bash 运行 java -jar RobotAutoScript-Server-1.0.jar ``` 3. 服务端启动成功后,可访问 http://localhost:8080 验证服务是否正常(返回 “Server Running” 即为成功)。 ### 📖 快速使用指南 #### 1. 本地脚本录制与播放 1. 启动客户端,无需连接服务端即可使用本地功能; 2. 点击界面 “开始录制” 按钮,执行需要自动化的键鼠操作; 3. 操作完成后点击 “停止录制”,输入脚本名称并保存; 4. 在脚本列表中选择已保存的脚本,点击 “播放” 按钮,即可自动执行录制的操作; 5. 可选配置:播放前可调整播放速度、是否循环播放等参数。 #### 2. 远程操作同步 1. 确保服务端已启动,且客户端与服务端处于同一网络(局域网 / 公网); 2. 在客户端界面 “连接配置” 区域,输入服务端 IP 地址(如 192.168.1.100)和端口(默认 8080); 3. 选择连接类型(“主控端”/“被控端”): - 主控端:本地键鼠操作同步到所有被控端; - 被控端:接收主控端的键鼠操作并自动执行; 4. 点击 “连接” 按钮,成功建立连接后,即可实现远程操作同步。 ### 🛠 核心依赖项说明 #### 客户端核心依赖 |依赖名称|版本|用途| |---|---|---| |jnativehook|2.2.2|原生键鼠事件监听| |gson|2.10.1|JSON 格式脚本序列化 / 反序列化| |java-websocket|1.5.2|WebSocket 客户端通信| |swingx|1.6.5|增强 Swing 界面组件| #### 服务端核心依赖 |依赖名称|版本|用途| |---|---|---| |spring-boot-starter|2.7.15|Spring Boot 核心启动依赖| |spring-boot-starter-websocket|2.7.15|WebSocket 服务端支持| |lombok|1.18.28|简化实体类代码(可选)| |commons-lang3|3.14.0|通用工具类| ### ⚠️ 注意事项 1. 权限要求:Windows 系统下,客户端需以管理员权限运行,否则 nativehook 可能无法捕获全局键鼠事件; 2. 防火墙配置:服务端运行时需开放默认端口 8080(或自定义端口),避免防火墙拦截连接; 3. 分辨率适配:录制脚本的屏幕分辨率与播放时不一致,可能导致鼠标坐标偏移,建议保持分辨率一致; 4. 公网访问:若需公网远程连接,需在服务端所在路由器配置端口映射,并确保服务端 IP 可外网访问; 5. 异常处理:若脚本播放时出现卡顿,可降低播放速度或检查是否有无效操作记录。 ### 📄 许可证 本项目采用 MIT 许可证 开源,你可以自由使用、修改、分发本项目代码,商用 / 非商用均可。详情请参阅项目根目录下的 LICENSE 文件。 ### 📞 问题反馈与贡献 #### 问题反馈 如果使用过程中遇到功能异常、连接失败等问题,可通过以下方式反馈: 在 Gitee 仓库提交 Issue:https://gitee.com/LeiZhK/RobotAutoScript/issues 邮件反馈:[可补充作者邮箱] #### 贡献指南 欢迎开发者参与项目优化与功能扩展: Fork 本仓库到个人账号; 创建特性分支(git checkout -b feature/xxx); 提交代码修改(git commit -m "feat: 新增xxx功能"); 推送分支到远程(git push origin feature/xxx); 提交 Pull Request 到主仓库,等待审核合并。 ### 总结 1. 扩展后的 README 保留了原有的核心信息(C/S 架构、脚本录制/播放、WebSocket 远程同步),新增了**核心功能细分**、**项目结构详解**、**多方式运行教程**、**依赖项说明**、**注意事项**、**贡献指南**等模块; 2. 补充了实操性细节(如 Maven 命令、端口配置、权限要求),降低用户使用门槛; 3. 优化了格式(如表格、代码块、图标),提升文档可读性,你可根据实际项目情况删减非必要内容(如依赖版本、贡献指南等)。