# node-auto-click **Repository Path**: brujie/node-auto-click ## Basic Information - **Project Name**: node-auto-click - **Description**: node-auto-click - **Primary Language**: JavaScript - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-16 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动点击工具 一个基于Node.js的自动化点击工具,支持录制鼠标点击位置并自动执行点击操作。 ## 功能特性 - 🎯 **点位录制**:支持录制多个鼠标点击位置 - 🔄 **自动点击**:根据录制的点位自动执行点击操作 - ⚙️ **点位设置**:支持设置单击/双击模式 - 🚀 **PM2管理**:支持PM2进程重启和日志查看 - 📱 **响应式界面**:支持桌面端和移动端访问 - 🎨 **简洁UI**:简洁直观的操作界面 ## 系统要求 - Node.js 16.20.0 或更高版本 - Windows 10/11 操作系统 - 支持鼠标操作的应用程序 ## 安装步骤 ### 1. 克隆项目 ```bash git clone https://gitee.com/brujie/node-auto-click.git ``` ### 2. 安装依赖 ```bash npm install ``` ### 3. 录制点击点位 ```bash npm run set ``` 按照提示操作: - 按 `R` 键记录当前鼠标位置 - 按 `回车键` 完成录制并保存 - 按 `Esc` 退出录制(不保存) ### 4. 启动服务 **推荐启动方式(启用垃圾回收):** ```bash node --expose-gc server.js ``` **或使用PM2启动(推荐长期运行):** ```bash pm2 start server.js --name index --node-args="--expose-gc" ``` **常规启动方式:** ```bash npm start ``` 或者直接运行: ```bash node server.js ``` > **重要提示**:为了获得更好的内存管理,强烈建议使用 `--expose-gc` 参数启动,这样可以启用垃圾回收功能,防止长时间运行时的内存溢出。 ## 使用方法 ### 1. 访问控制台 打开浏览器访问:`http://localhost:7777` ### 2. 主要功能 #### 点位设置 - 点击"点位设置"按钮 - 查看已录制的点击点位 - 设置每个点位的单击/双击模式 - 保存设置 #### 启动点击 - 点击"启动"按钮 - 系统将按照录制的点位顺序执行点击操作 - 支持单次执行 #### PM2重启 - 点击"重启"按钮 - 自动执行 `pm2 restart index` 命令 - 重启成功后自动显示最新日志 ### 3. 命令行工具 #### 录制点位 ```bash npm run set ``` #### 直接执行点击 ```bash npm run click ``` #### 图像识别点击 ```bash npm run click-ui ``` ## 配置文件 配置文件位于 `src/config.json`,包含以下设置: ```json { "coordinateOffset": { "offsetX": 0, "offsetY": 0 }, "displayConfig": { "primaryWidth": 1920, "primaryHeight": 1080, "isMultiDisplay": false }, "fineTune": { "enableFineTune": true, "stepSize": 20, "maxOffset": 1000 }, "clickPoints": [ { "x": 100, "y": 200, "mode": 1 } ] } ``` ### 配置说明 - **coordinateOffset**: 坐标偏移量,用于校准点击位置 - **displayConfig**: 显示器配置,支持多显示器 - **fineTune**: 精细调优设置 - **clickPoints**: 录制的点击点位列表 - `x`, `y`: 坐标位置 - `mode`: 点击模式(1=单击,2=双击) ## 项目结构 ``` 自动点击登录v2/ ├── public/ # 前端文件 │ ├── index.html # 主页面 │ └── client.js # 前端逻辑 ├── src/ # 源代码 │ ├── setconf.js # 点位录制工具 │ ├── click.js # 点击执行核心 │ ├── autoClickUI.js # 图像识别点击 │ └── config.json # 配置文件 ├── by/ # 辅助工具 │ ├── clickTarget.js # 目标点击工具 │ └── setconf-stable.js # 稳定版配置工具 ├── static/ # 静态资源 ├── server.js # HTTP服务器 └── package.json # 项目配置 ``` ## API接口 ### 启动点击任务 ``` GET /click ``` 启动自动点击任务 ### 获取点位列表 ``` GET /click-points ``` 获取已录制的点击点位列表 ### 更新点位设置 ``` POST /click-points Content-Type: application/json { "items": [ { "index": 0, "mode": 2 } ] } ``` ### PM2重启 ``` POST /pm2-restart ``` 重启PM2进程并返回最新日志 ## 注意事项 1. **权限要求**:需要管理员权限来执行鼠标操作 2. **坐标校准**:如果点击位置不准确,请调整配置文件中的偏移量 3. **点位录制**:录制时请确保鼠标位置准确,建议在目标应用界面录制 4. **安全使用**:请勿用于恶意目的,仅用于合法的自动化操作 5. **内存管理**: - 长期运行建议使用 `--expose-gc` 参数启动以启用垃圾回收 - 系统会自动监控内存使用,超过200MB时触发垃圾回收 - 内存过高时会自动重启PM2进程以防止溢出 - 每2分钟检查一次内存使用,每30分钟进行定期清理 ## 故障排除 ### 常见问题 1. **点击位置不准确** - 检查显示器分辨率设置 - 调整配置文件中的坐标偏移量 - 重新录制点位 2. **无法启动服务** - 检查端口7777是否被占用 - 确认Node.js版本兼容性 - 检查依赖包是否正确安装 3. **PM2命令失败** - 确认PM2已正确安装 - 检查PM2进程状态 - 确认有足够的权限 4. **内存溢出问题** - 使用 `--expose-gc` 参数重新启动:`node --expose-gc server.js` - 或使用PM2重启:`pm2 restart index --node-args="--expose-gc"` - 检查日志中的内存使用情况 - 考虑增加系统可用内存 - 定期重启服务以清理内存 ### 日志查看 服务启动后会在控制台显示访问地址: ``` HTTP server listening on: Local: http://localhost:7777 LAN: http://192.168.x.x:7777 ``` ## 开发说明 ### 技术栈 - **后端**: Node.js + HTTP模块 - **前端**: 原生JavaScript + HTML5 - **自动化**: @nut-tree-fork/nut-js - **进程管理**: PM2 ### 扩展功能 项目支持通过以下方式扩展: - 添加新的API接口 - 扩展前端功能 - 集成其他自动化工具 - 支持更多操作系统 ## 许可证 本项目仅供学习和合法用途使用,请遵守相关法律法规。 ## 更新日志 ### v2.0.0 - 重构项目架构 - 简化用户界面 - 优化点位管理 - 添加PM2管理功能 ### v1.0.0 - 基础自动点击功能 - 点位录制功能 - 简单的Web界面 --- 如有问题或建议,请提交Issue或联系开发者。