基于 Tauri 2.0 + Vue 3 + ViGEmBus 的专业级游戏手柄模拟与自动化挂机工具
AutoController 是一款专为 Windows 平台打造的高性能、专业级虚拟手柄挂机与自动化工具。它基于 Tauri 2.0 框架,结合 Vue 3 (TypeScript) 现代化前端与 Rust 异步后端,底层通过 ViGEmBus 内核驱动实现高精度、低延迟的硬件级 Xbox 360 手柄信号模拟。无论是长时间挂机的核心玩家,还是需要进行批量自动化测试的开发人员,AutoController 都能提供直观、强悍的解决方案。
ℹ️ 提示:关于当前版本(v0.7.3)的详细功能更新,请查看 最新更新日志。
- 🎮 专业级手柄模拟系统
- 底层集成 ViGEmBus 驱动,支持 Xbox 360 虚拟手柄模拟。
- 超低延迟(<5ms)和高精度(100Hz+)输入模拟,保障极速响应。
- 最多支持 8 个虚拟手柄 独立并发运行,并支持运行时热插拔管理。
- 直观的可视化仪表盘,提供摇杆拖拽互动可视化及扳机键动态进度条。
- 🧩 全局新版 UI 骨架(v0.7.0 新增)
- 新增统一页面骨架、标题区、状态提示与空状态组件,让设备监控、宏控制、脚本编辑器、任务调度、配置、通知、防失焦和日志查看等页面保持一致的交互结构。
- 补齐信息、成功、警告、危险等语义化状态样式,并统一按钮图标、工具栏、折叠侧栏与提示反馈的视觉节奏。
- 🏎️ Forza 实时遥测分析(v0.7.0 新增)
- 新增 Forza 遥测独立页面,支持接收游戏 Data Out UDP 数据并展示实时速度、转速、挡位、圈速、姿态、G 值、输入与轮胎状态。
- 支持自动记录历史会话、圈速统计、数据回放、收藏/重命名/删除会话,以及速度、转速和驾驶输入曲线分析。
- ⏱️ 高精度宏录制与回放
- 一键捕获所有手柄动作事件,记录毫秒级时间戳。
- 回放支持 50% ~ 200% 的速度缩放 调节,满足各种特定节奏需求。
- 支持无限次循环播放与断点续播,可在暂停后精准恢复。
- 📜 Rhai 脚本引擎
- 内置轻量级沙箱化 Rhai 脚本运行时,语法简洁,适合编写稳定可控的本地自动化脚本。
- 提供完备的脚本 API 绑定:手柄动作(按下/释放/移动摇杆/按压扳机)、高精度延时等待(
sleep)、OCR 识别及日志记录。 - 集成 Monaco Editor 智能编辑器,支持 Rhai 语法高亮、自定义 API 自动补全和悬浮说明。
- 📅 智能任务调度器
- 支持单次执行、每日定时、周期循环及标准 Cron 表达式等多种调度方式。
- 配备高优先级任务抢占机制与冲突解决队列,保障任务有序执行。
- 🛡️ 系统集成与性能调优
- 支持系统托盘最小化运行、托盘气泡通知及运行状态托盘指示器。
- 智能进程监控:自动识别目标游戏启动与退出状态。
- 智能资源调度:游戏运行时自动开启高性能模式,空闲时降低采样率以实现超低功耗(CPU < 5%,内存 < 100MB)。
- ⚙️ 配置文件 & 级联日志
- 采用 TOML 格式存储应用配置,按游戏独立保存 Profile。
- 基于 Rust
tracing库实现的异步级联日志系统,支持日志轮转,并可一键导出为 JSON / CSV 格式。
- 🔍 Rust 原生绑定 PaddleOCR 离线引擎 (免部署 🌟)
- 零外部依赖 (
app/src-tauri/src/ocr):全面重构 OCR 底层架构,将 PaddleOCR 核心识别引擎通过 Rust 底层原生绑定 直接无缝嵌入主程序,不再需要在外部单独部署任何 Python 环境、EXE 独立服务或 Docker 容器。 - 内存级超低延迟:截图数据直接在内存中完成像素流传递与 OCR 解析,免去磁盘 I/O 与复杂的网络序列化开销,为高频画面状态检测提供毫秒级响应。
- 完备双本地引擎:支持切换 内置 PaddleOCR 离线引擎与 Windows 原生 (WinRT OCR) 引擎,满足不同场景下的纯离线文字识别需求。
- 多区域标定与脚本 API:支持在 UI 界面多区域框选标定,脚本中通过
ocr()、ocr(序号)或ocr(x,y,w,h)灵活读取。 - 自适应高保真增强:短边小于 600px 时自动采用 GDI HALFTONE 差值算法智能高清晰度放大,保障极高字亲和性与识别率。
- 零外部依赖 (
- 🔔 多通道智能消息通知系统
- 深度集成 飞书 Webhook (Feishu)、Server酱 (ServerChan)、Server酱三代 (ServerChan3) 及 Telegram Bot 消息通道。
- 支持脚本运行成功、出错、结束时以及自定义节点进行自动化远程消息推送,挂机动态了如指掌。
- 👁️ 防止游戏/窗口失去焦点 (No Focus Loss)
- 底层基于跨进程 DLL 注入与 Hook 技术拦截窗口失活消息,解决切屏/后台挂机时游戏自动暂停、静音或降帧(FPS)问题。
- 物理隔离高安全注入:将注入核心操作全部剥离至独立子进程
injector.exe执行,彻底隔离敏感跨进程 Win32 API,规避主程序查杀报毒与崩溃。 - 管理员权限原生检测:前端实时检测系统特权状态并以显著色块进行提示,针对高权限游戏实现完美的一键式注入及无痕“安全卸载”剥离。
- 极致单行折叠式交互:免责声明与权限提示支持极简一键折叠,绝不占用多余的视觉操作空间。
- (本项目中防止失去焦点技术实现参考自优秀开源项目 NoFocusLoss)
| 层级 | 选用技术 | 用途说明 |
|---|---|---|
| 桌面框架 | Tauri 2.0 (Rust) | 提供底层的 IPC 通信、托盘集成、文件系统访问与系统服务 |
| 前端 UI | Vue 3 + TypeScript | 响应式界面开发,提供模块化的高自由度用户体验 |
| 状态管理 | Pinia 2.x | 全局共享设备状态、宏与脚本运行状态 |
| 样式/组件 | Vanilla CSS + Lucide Icons | 自定义精美工业风 (Vibrant & Block-based) 主题,配合 Lucide 图标 |
| 脚本运行时 | Rhai (Rust 原生脚本引擎) | 轻量沙箱环境,执行用户编写的手柄自动化脚本 |
| OCR 引擎 | PaddleOCR (Rust 原生绑定) | 主程序内置的离线高性能文本识别引擎,免外部部署 |
| 遥测模块 | Forza Data Out + UDP + SQLite | 接收、展示、记录并回放 Forza 遥测数据 |
| 内核模拟 | ViGEmBus Driver (1.17+) | 核心虚拟手柄硬件级信号生成驱动 |
本项目的核心前端与后端均位于 app/ 目录下:
AutoController/
├── app/ # 应用程序核心
│ ├── src-tauri/ # Rust 后端 (Tauri 2.0 框架)
│ │ ├── Cargo.toml # 后端 Rust 依赖配置
│ │ └── src/
│ │ ├── controller/ # 手柄模拟与 ViGEmBus 通信
│ │ ├── macro_engine/ # 宏录制与回放引擎
│ │ ├── script_engine/ # Rhai 引擎与 API 绑定
│ │ ├── fh6_telemetry/ # Forza 遥测接收、解析与历史会话存储
│ │ ├── scheduler/ # 任务调度与 Cron 解析
│ │ └── system/ # 托盘与进程监控集成
│ └── src/ # Vue 3 前端 (TypeScript)
│ ├── views/ # 页面视图 (设备监控、编辑器、调度器等)
│ ├── components/ # 通用及模块专用组件 (摇杆/扳机/遥测可视化)
│ └── stores/ # Pinia 状态管理仓库
├── design-system/ # 系统 UI 视觉规范设计文档
├── docs/ # 设计及任务计划文档
└── assets/ # 静态资源与应用图标
- 前往本项目的 GitHub Releases 页面 下载最新版本的 Windows 安装包(如
.msi或打包好的独立.exe执行文件)。 - 按照向导完成软件安装。程序已内置集成了所需的 ViGEmBus 内核驱动与 离线 PaddleOCR 模型,安装过程中会自动处理,无任何外部依赖,解压/安装即用。
- 普通模式:双击启动桌面的 AutoController 即可开始使用设备模拟、录制宏、编写 Rhai 脚本以及调用全内置的离线 OCR 功能。
- 管理员模式 (推荐 🛡️):如果您挂机的游戏具有高权限或需要使用 防止窗口失去焦点 (No Focus Loss) 注入技术,请在桌面上右键选择 “以管理员身份运行” 启动本程序。
- Forza 遥测:进入 Forza 遥测 页面后,在游戏中开启 Data Out,并将 UDP 目标指向运行本程序的电脑,即可查看实时仪表盘、记录历史会话和回放遥测数据。