一站式游戏管家
多游戏排队 · 挂机护航 · 定时 · 完成通知
Important
免责声明
本项目由 AI 辅助开发:代码、文档与发布流程均在 AI 协助下生成或改写,作者本人不具备编程能力, 无法对代码质量、安全性或稳定性作出专业保证,也无法排除 AI 生成内容中存在错误或遗漏。 请在使用前自行评估风险并备份重要数据;遇到问题欢迎反馈,但请理解排查与维护能力有限。
一条龙管家(Dragon Butler)是一个 Windows 桌面端的「一站式游戏管家」。 它不自己做游戏日常,而是把你已经在用的自动化工具——BetterGI、三月七助手、ok-ww,以及任何你能找到的 exe——排成一条队列,按顺序启动、盯着跑完、再收尾。
睡前勾好今晚要跑的工具,点一次「一键开跑」:启动第一个 → 等它真正结束 → 间隔几分钟 → 启动下一个 → 全部跑完发一条汇总消息;需要的话,顺手帮你睡眠或关机。
它不替代这些工具,也不修改游戏或工具的任何文件——只做四件事:启动进程、读公开日志、监听本地 Webhook、管理进程生命周期。
- 睡前排队:勾选 BetterGI / 三月七助手 / ok-ww,点「一键开跑」,按顺序依次执行,跑完给你一条汇总消息。
- 按日计划:一周七天各跑各的组合,周本和日常可以自动分开;空着的那天到点跳过并提醒。
- 跑完动作:仅通知 / 自动睡眠 / 自动关机(关机有 60 秒倒计时,可取消)。
- 定时 + 防打扰:到点自动开始;发现你还在用电脑就先等一等,空闲后再跑。
- 自动寻找路径:点一下自动定位工具位置,多数情况不用手填。
- 挂机护航:队列跑着的时候替你按住系统——不睡眠、不因更新重启、不弹屏保;跑完自动恢复。
- 自定义工具:任意 exe 都能接入,完成方式支持进程退出 / 到达时长 / 自定义信号,图标自动从程序里提取。
- 晨报(默认关):每天第一次打开时一句话汇报昨天跑了什么。
| 能力 | 说明 |
|---|---|
| 跑完的动作 | 仅通知(默认)/ 自动睡眠 / 自动关机(60 秒倒计时,可取消);有失败项时默认不执行破坏性动作。 |
| 失败怎么处理 | 失败自动重试一次;仍失败按策略「跳过继续」或「中止队列」。 |
| 跑的时候看着 | 守护只报异常:进程消失、内存过高、画面冻结;宁可漏报,不误杀。 |
| 跑完叫你 | 一条汇总消息(几项成功、谁失败、总耗时),可推到系统通知或手机(企业微信 / 飞书 / 钉钉 / Telegram / Bark / 邮件 / Webhook 等)。 |
| 定时 + 防打扰 | 到点自动开跑;你还在用电脑就先等空闲;「度假模式」一键停掉所有定时。 |
| 按日计划 | 每个工具单独设「周几跑」,只约束定时触发;手动开跑永远按当前勾选。 |
| 多工具 | BetterGI(一条龙 / 配置组)、三月七助手、ok-ww;路径支持自动寻找。 |
| 自定义工具 | 任意 exe 都能接入:填路径、进程名、完成方式;图标自动提取,也能手动换。 |
| 自定义信号 | 完成条件三选一组合:日志包含文本 / 等待文件出现 / 主窗口标题包含。 |
| 挂机护航 | 队列运行时阻止空闲睡眠、更新重启确认与屏保,结束恢复原设置。 |
| 夜间息屏 | 运行 N 分钟后关闭显示器(默认关),系统保持唤醒,队列继续跑。 |
| 疑似挂起 | 进程活着但 3 分钟无 CPU/日志活动 → 暂停队列并通知;可选自动终止。 |
| 可换外观 | 深色 / 浅色 / 跟随系统,也可以用调色板或自己的图片当背景。 |
- 定时补跑:错过那一分钟不再等于今天不跑。允许一个补跑窗口(默认 120 分钟),睡醒开机还能补上,日志写明「补跑(计划 08:00,实际 09:12)」。
- 接着跑:跑了一半被打断,第二天不用重头来——队列卡与托盘会出现「接着跑(今天还剩 N 项)」,只跑没成功的。
- 失败现场包:出事那一刻自动把日志尾巴、脱敏后的配置、进程列表、截图打包进
全部日志\incidents\,失败通知直接带上路径。 - 通知说清为什么:不再用「详情见软件日志」打发人。现在带退出码、最后一条错误日志行、悬置或挂起的具体判据。
- 重试退避可配:次数、首次等待、逐次翻倍都能填;封顶 300 秒。
v1.5.1 清理
- 清理:删掉 v1.4 布局重构后遗留的死代码——心电图组件
EcgMeter(482 行)、已失效的红色横幅与它的计时器、两个零引用查询方法;界面与行为完全不变。 - 文档:README 补上「构建与依赖」「隐私与联网」「使用须知」「相关项目」,许可一节写全 MIT 的授权范围与第三方素材边界;徽章换成实时数据。
- 依赖:已核对——0 个 NuGet 包,仓库里没有 npm / Node 产物,构建只需要 .NET 8 SDK。
v1.5.0 按日计划 · 自由接入
- 按日计划:一周七天各跑各的工具组合,周本和日常自动分开;空着的那天到点跳过并提醒。
- 自定义信号:自定义工具的完成方式多了第三选——日志文本 / 文件出现 / 窗口标题,可任意组合。
- 更换图标:任何工具都能换成你喜欢的图标(.ico / .png / .jpg / 借别的 exe),随时一键还原。
- 晨报(默认关):每天第一次打开时用一句话汇报昨天的运行情况。
- 队列更直观:每个工具后面显示「每天 / 6天」,队列下方写明今天跑哪几项。
三层布局:队列卡(Hero)→ 工具卡(默认折叠)→ 高级设置(默认折叠);守护收进底部盾牌。
图 1 · v1.5 主界面(深色):定时卡 · 睡前队列(含按日计划)· 工具卡 · 自定义工具 · 底部盾牌
主界面一屏三块,从上往下就是使用顺序:
- 上 · 定时卡 + 睡前队列:左边设时间与重复日;右边勾工具、拖动排序、点「一键开跑」。 运行时按钮变红「停止」,下面可选跑完做什么;等待空闲时会出现「立即开始(跳过等待)」。 队列卡右上「按日计划」按星期分配工具,每个工具后面直接显示「每天 / 6天」。
- 中 · 工具卡(默认折叠):每张卡是「路径 + 浏览 / 自动寻找 / 测试启动 / 换图标」。 自动寻找命中后会预填路径,点「使用此路径」才生效;BetterGI 卡里还有一条龙配置名与配置组勾选。
- 下 · 高级设置(默认折叠):挂机护航、夜间息屏、疑似挂起自动终止、晨报、守护、崩溃重启、 截图检测、防打扰、定时前清理残留、失败策略、工具间隔、失败也执行跑完动作、事件推送地址(可选)。
- 底部状态条:左边盾牌(绿=守护中 / 灰=关闭 / 黄=近期有告警,悬停看详情),右边最近一条事件。
图 2 · v1.5 按日计划:7 天 × 各工具矩阵,点日期切整行、点工具名切整列
按星期给每个工具勾选跑不跑:周本放周末、日常放工作日都行。只在定时触发时生效, 手动点「一键开跑」永远跑当前勾选;某天一个都没勾,到点会跳过并发一条「今日计划为空」。
图 3 · v1.5 工具卡:路径 / 浏览 / 自动寻找 / 测试启动 / 换图标;BetterGI 另带配置名与配置组
图 4 · v1.5 高级设置:挂机护航、夜间息屏、疑似挂起、晨报,以及原有的守护与队列选项
图 5 · v1.5 自定义工具:进程退出 / 到达时长 / 自定义信号三种完成方式
工具卡最下方点「+ 添加」,填三样就能用:程序路径、进程名(通常与 exe 同名)、完成方式。完成方式有三种:
- 进程退出(退出码 0):适合跑完自己退出的工具。
- 到达时长:跑满 N 分钟后自动判定完成,并结束进程,适合不会自己退出的工具。
- 自定义信号:三种条件任填至少一项,命中任意一个就算完成——日志包含文本(一行一条)、等待文件出现、主窗口标题包含。
自定义信号命中后先进入「互证」:工具自己退出(退出码 0)才算真完成,宽限 5 分钟内没退出会暂停队列等你处理,避免「发完日志其实还在跑」被误判。
保存后自动加进队列;工具卡会读取 exe 的图标,没有图标则显示名称首字母。任何工具都能点「换图标」换成自己的图(.ico / .png / .jpg,也能借别的 exe 的图标),有自定义图标时会多一个「恢复默认」。点「编辑」可改路径/参数/完成方式,也可以删除(内置三个工具不允许删除)。
守护收在底部盾牌里:绿=守护中、灰=关闭、黄=近期有告警(30 分钟内出现过异常)或护航中;鼠标悬停能看到心跳次数、内存、CPU、截图检测、Webhook 端口、护航项与重启次数。它只管三件事:
| 监测 | 看什么 | 异常时 |
|---|---|---|
| 崩溃自动重启 | 工具进程是否消失、队列是否还在跑 | 非队列场景下冷却 60 秒后自动拉起;队列在跑时交给队列判定,避免双开 |
| 内存监控 | 系统占用 / 工具工作集 | 只提醒,不动进程 |
| 画面冻结检测 | 定时截图与上一张的灰度差异 | 只提醒,保留截图(不接入完成信号) |
跑完是怎么判定的(BGI):主信号是日志锚点 一条龙和配置组任务结束(BGI 中途会打印多次「任务结束」,所以绝不裸匹配)。到达后只要再满足任一互证就算完成:
- 关联游戏进程退出;或
- BGI Webhook 的
dragon.end事件(配了更快);或 - BGI 自己正常退出(退出码 0)——v1.3.1 新增,解决"跑完不关游戏又没配 Webhook"时会一直等的问题。
宽限期内一个都没等到 → 悬置:队列停下并通知你处理,绝不猜着往下跑。
疑似挂起(v1.4):进程还活着,但连续 3 分钟 CPU 低于 5%、关联日志也没有增长 → 状态转为 STALLED,队列暂停并通知你。默认不动进程,等你处理;打开「自动终止疑似挂起」后,会结束进程并按失败策略继续(默认「跳过继续」)。没有日志文件的工具只看 CPU。
三条不做的事(宁可漏报,也不误杀):画面冻结不重启、游戏退出不重启、只有"工具消失 + 队列进行中"同时成立才考虑重启。
队列真正开始执行时自动开启,队列结束、停止或悬置时立即恢复;正常时完全静默,不弹通知,只写日志。
| 项 | 做什么 | 结束怎么恢复 |
|---|---|---|
| 防空闲睡眠 | SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED),让系统不因空闲进入睡眠 |
清回 ES_CONTINUOUS |
| 防更新重启 | ShutdownBlockReasonCreate 注册重启阻断,让 Windows 更新重启时先弹确认而不是静默重启 |
ShutdownBlockReasonDestroy |
| 防屏保 | 记录 ScreenSaveActive 原值后临时关闭 |
恢复原值;失败会在下次启动补偿 |
| 夜间息屏(可选,默认关) | 运行 N 分钟后关闭显示器(5–120 分钟),系统保持唤醒,队列继续 | 队列结束取消后续息屏 |
队列运行时底部盾牌会变成黄色「护航中」,悬停能看到当前生效的项。它不会阻止你手动关机/睡眠,也不会强制阻断系统更新,只是降低挂机被打断的概率。
图 6 · v1.5 定时编辑页:24 小时双圈圆盘,外圈 1–12、内圈 13–23 与 0
- 圆盘:外圈 1–12、内圈 13–23 与 0,点选或按住拖动;选完小时自动进分钟盘。
- 键盘:直接敲
0830,适合精确输入。 - 重复日:每天或星期组合;当天到点只触发一次。
- 改完点「返回」会立刻回到概览,卡片高度同帧校正,不会出现半秒错位。
四档:深色 / 浅色 / 跟随系统 / 自定义。前三个是预设:
自定义可以做两件事:
图 8 · v1.5 自定义主题:左侧实时预览、右侧参数、底部对比度读数
- 调色板取色:18 个预设色 + 系统取色器。
- 图片背景:选一张本地图,调遮罩强度(0–90%)。
编辑器左边是实时预览,改一个参数全应用立刻跟着变;底部会实时算正文对比度(15.4:1 · AAA 这种)。「恢复默认主题」一键回到跟随系统,「取消」不写入配置。
自定义背景能保证看得清,靠的是三层:背景图 → 半透明遮罩 → 卡片,文字永远落在卡片上;卡片的亮度按当前方案锚定(深色方案向 #16191F 混 93%,浅色方案向白混 90%),所以换个再艳的背景也不会把字糊掉。
前提:Windows 10/11 x64、至少装好你要用的工具(BetterGI / 三月七助手 / ok-ww)、有管理员权限(结束工具进程需要)。
两个版本功能一样,区别只在「运行时」放在哪:
| runtime-dependent(需 .NET 8 运行时) | portable(免安装便携版) | |
|---|---|---|
| 压缩包 | Dragon-Butler-v1.6-win-x64-runtime-dependent.zip |
Dragon-Butler-v1.6-win-x64-portable.zip |
| 大小 | 约 0.27 MB | 约 62.8 MB |
| 要求 | 已装 .NET 8 桌面运行时 | 无,自带运行时 |
| 适用 | 机器上已有 .NET 8,想下最小包 | 不确定有没有 .NET 8、要换电脑或放 U 盘 |
文件名规则是
Dragon-Butler-v<版本>-<平台>-<变体>:v1.6是当前版本(程序里显示为1.6.0;末位是0时包名按惯例省掉补位,比如1.5.0打成v1.5),win-x64是平台,runtime-dependent/portable是变体。 解压出来的目录名固定为Dragon-Butler-win-x64-runtime-dependent\或Dragon-Butler-win-x64-portable\,不带版本——升级时直接覆盖原目录,config\里的设置不会丢。
两个版本都不用"安装":没有安装向导、不写注册表、不注册服务,解压后双击 exe 就能用,删掉文件夹就是卸载。 区别只在于 exe 里有没有打包 .NET 运行时——没打包的那个,需要电脑上已经装过一次 .NET 8 桌面运行时(微软免费,装一次以后所有 .NET 8 程序都能用);已经装过的话,两个版本用起来没有任何区别。
1. 解压 → 双击 Dragon Butler.exe(UAC 点「是」)
2. 首启向导:勾选工具 →「自动寻找」(找不到再浏览)→ 完成
3. 回主界面点「一键开跑」
图 9 · v1.5 首启向导:勾选工具 → 自动寻找 → 完成
Release 页有两个附件:
Dragon-Butler-v1.6-win-x64-portable.zip是免安装便携版(解压即用,推荐);Dragon-Butler-v1.6-win-x64-runtime-dependent.zip是需 .NET 8 运行时的小包。
跑起来之后建议再补三步:
- 想挂机 → 打开定时并设好时间,顺手开开机自启;
- 想收消息 → 「通知」卡选一个渠道填地址,点「测试」;
- 想让进度更准 → BGI 设置里把 Webhook 填成
http://127.0.0.1:18235/webhook(界面有复制按钮)。不填也能用,会退回日志解析。
全部在 exe 旁边,删掉文件夹就是卸载(开过自启的先去「系统」里关掉):
Dragon Butler.exe
├─ config\settings.json # 所有设置,可手改
├─ config\group_archive.json # 今天跑了哪些组
├─ tools\*.json # 工具档案(含自定义工具)
├─ cache\icons\ # 自动提取的图标 + 手动换的图标(ov_*.png)
├─ sounds\ # 自动生成的 6 个按键音
└─ 全部日志\ # 运行日志(出问题先看这里)
不写注册表(除开机自启那一个值)、不写 %APPDATA%,整个文件夹可以拷走接着用。
提示「找不到 BetterGI」
路径要选到BetterGI.exe 本身,不是它所在的文件夹。
需 .NET 8 运行时版双击没反应 / 报缺框架
没装 .NET 8 桌面运行时。装上,或换免安装便携版。自定义背景后字看不清
遮罩拉到 60–75%,文字配色切到与背景相反的方向。编辑器底部的对比度 ≥4.5:1 就达标,≥7:1 是 AAA。守护会误杀我的游戏 / 别的 BGI 吗
不会。所有进程查找和结束都按当前 Windows 会话过滤,而且冻结、原神退出这两类情况只提醒不重启。怎么接入一个任务书之外的工具
工具卡最下方「自定义工具」点「+ 添加」,选 exe、填进程名,再选完成方式(进程退出 / 到达时长 / 自定义信号)即可。图标会自动提取,也能点「换图标」自己挑一张。按日计划设了,为什么手动开跑还是全跑
按日计划只约束「定时触发」。手动点「一键开跑」永远按当前勾选跑,这样可以临时补跑。想确认今天会跑哪几项,看队列下方那行「今天(周五)跑 2 项」。自定义信号一直不触发
「日志包含文本」只扫程序目录及其log / logs 子目录里的 .log、.txt,而且只看本次启动之后新增的内容;日志写在别处就用「等待文件出现」或「主窗口标题包含」。
晨报怎么开 / 为什么没播
高级设置里打开「晨报」(默认关)。它只在每天第一次启动时播一句,且昨天没有任何组归档记录时不播;想立刻看效果,改完设置重启一次软件。提示「疑似挂起」怎么办
先看游戏/工具画面是否真的卡住。默认队列会停下来等你;处理完点「一键开跑」继续。想让它自动结束进程,到高级设置打开「自动终止疑似挂起」。挂机护航会影响我正常用电脑吗
只在队列运行期间生效:阻止空闲睡眠、注册重启确认、临时关闭屏保;队列结束立即恢复。手动关机、手动睡眠不受影响。托盘还有图标,再双击提示「已在运行」
程序是单实例的。托盘右键可以「打开主界面」或「退出」。Windows 提示「已保护你的电脑」/ 杀毒软件报毒
发行包没有做代码签名,SmartScreen 会拦一下:点「更多信息 → 仍要运行」。若杀软直接隔离,把程序目录加入信任,或按上面「构建与依赖」自己从源码构建——源码级构建不需要任何第三方包。用 主版本.次版本[.修订]:
- 修订位 +1(v1.3.0 → v1.3.1):只修 bug、不加新功能时使用;能省则省,不连续发修订版。
- 次版本 +1(v1.3.1 → v1.4.0):有新功能或可感知的体验改动。
- 主版本 +1(v1.x → v2.0):只在核心能力或大改动时进位,比如换了运行方式、加了整套新模块。
v0.x是开发期,v1.0是第一个可以给别人用的版本;当前在v1.6。
完整历史见 BUILD_REPORT.md。
- 只支持 Windows x64 + .NET 8;没有 macOS / Linux 版本。
- 不带自动更新,新版本要手动替换 exe(配置和日志会保留)。
- BGI 的完成判定依赖日志锚点
一条龙和配置组任务结束,BGI 大改版换了文案时需要同步改tools/bettergi.json(Webhook 只是可选加速,不是必需)。 - 画面冻结检测需要游戏窗口可见,最小化到托盘时这一路会跳过。
- 自定义图片背景的亮度取整图平均色,极端构图(半黑半白)可能判不准,用「文字配色」手动锁定。
- 队列按顺序执行;某个工具"报告完成但进程没退出"时,队列会停下来等你处理(通知会说明是哪个工具)。
- 自定义信号里的「日志包含文本」只扫程序目录及其
log/logs子目录,日志写到别处请改用「等待文件出现」或「窗口标题」。 - 按日计划只作用于定时触发;手动开跑、崩溃重启不受计划限制。
- 晨报按配置组归档统计,「N 次运行」= 昨天有记录的配置组条数,不是精确的队列次数;同一天只播一次。
- 疑似挂起对没有日志文件的工具只看 CPU;屏保受系统策略控制,恢复失败会在下次启动补偿。
上面这些是「已知的坑」,不是「已知的 TODO」。下一步要做什么、为什么是那些、以及生态里哪些事本项目明确不碰,见 docs/路线图.md。
需要 Windows 10/11 x64 与 .NET 8 SDK(本版本在 8.0.427 上验证):
git clone https://github.com/laopiaoke/Dragon-Butler.git
cd Dragon-Butler
dotnet build "Dragon Butler\Dragon Butler.csproj" -c Release产物在 Dragon Butler\bin\Release\net8.0-windows\。要打成可直接分发的压缩包,运行:
powershell -ExecutionPolicy Bypass -File scripts\package.ps1关于 docs/ 里的截图:它们走 Git LFS。没装 git-lfs 也能正常克隆和构建——程序图标是真实字节入库、不经过 LFS——只是本地打开 README 时看不到那几张图。
依赖情况(可自行核对):Dragon Butler.csproj 里没有任何 PackageReference,全部功能只用 .NET 8 自带类库;仓库中没有 package.json、node_modules 或任何 JS/TS 文件,构建与运行都不需要 Node.js / npm。tests\CoordinatorProbe 通过 ProjectReference 引用主项目,同样不引入外部包。Release 构建保持 0 warning / 0 error,打开 .NET 分析器(EnableNETAnalyzers=true、AnalysisLevel=latest)后仍然为 0。
持续集成:推送到 main 或提交 PR 时,GitHub Actions 会自动跑三步验收——依赖审计(出现 PackageReference 或前端产物就直接失败)、0 警告构建(-warnaserror)、用 tests\StubTool 驱动 RunCoordinator 的集成探针(验证"日志命中完成判定"这条主链路真的通)。给提交打上 v* 标签并推送,验收通过后自动打包两个变体、发到 Releases,发布说明直接取自 RELEASE_NOTES.md 的同名小节,不需要手写。也可以手动触发(Actions → build → Run workflow):只打包、不发 Release,产物留在 Artifacts 里。
- 没有遥测、没有统计、没有崩溃上报:程序不会向任何第三方服务器发送使用数据、日志或设备信息。
- 唯一的对外连接是你自己在「通知」里填的推送地址(企业微信 / 飞书 / 钉钉 / Telegram / Bark / 自定义 Webhook),内容只有那条汇总消息。
- 本地会开一个
http://127.0.0.1:{端口}/webhook的监听口,只接受本机请求,用于接收 BetterGI 的完成事件;不用可以关掉。 - 「自动寻找」读的是注册表、开始菜单快捷方式和常见安装目录,不联网查询。
- 本项目免费开源,仅供个人在自己电脑上使用。 请勿用于售卖、代练、打包收费或其他商业分发。
- 与游戏厂商、本文列出的工具作者均无关联,也未获任何授权。 游戏名、工具名与图标归各自权利人所有。本软件只调用你自己已装好的工具,不改游戏、不改工具文件,不提供账号服务,也不绕过任何游戏机制。
- 自动化本身有风险。 使用第三方自动化工具可能违反游戏用户协议并导致账号受限,风险由使用者自行承担。
- 不接触你的账号信息。 程序不登录游戏、不读游戏数据,只读工具自己写在磁盘上的日志。
本项目不实现游戏日常,全部交给下面这些工具,感谢它们的作者:
- BetterGI · 更好的原神:原神一条龙
- 三月七助手 March7thAssistant:崩坏:星穹铁道
- ok-ww:鸣潮
本项目以 MIT 许可 发布,你可以自由使用、修改和再分发(含商业使用),条件是保留版权声明与许可全文;作者不对使用后果提供任何担保。
- 代码与文档:按上面这份 MIT 许可授权,全文见仓库根目录的 LICENSE。
- 游戏名、工具名与第三方图标:不在本许可范围内,归各自权利人所有;
docs/下的截图与界面素材仅用于展示本软件。 - 再分发时:请一并保留「使用须知」里的风险提示,不要让下游使用者误以为这是官方产品或安全无风险的代练服务。
