# PCOff **Repository Path**: 263292898/pcoff ## Basic Information - **Project Name**: PCOff - **Description**: 极简定时关机小工具。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-09-14 - **Last Updated**: 2026-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 
PCOff logo # PCOff [English](README.md) | **简体中文** 晚安定时关机小工具。设好时间去睡觉——电脑准时、安全地关机。 | 设置 | 运行中 | 关机前 60 秒 | |:---:|:---:|:---:| | ![设置视图](docs/assets/setup.png) | ![运行视图](docs/assets/running.png) | ![警告窗](docs/assets/warning.png) | | 设置·夜晚 | 设置面板·夜晚 | 警告窗·夜晚 | |:---:|:---:|:---:| | ![夜晚设置视图](docs/assets/setup-night.png) | ![夜晚设置面板](docs/assets/settings-night.png) | ![夜晚警告窗](docs/assets/warning-night.png) |
## 功能 - **三种定时模式** —— 倒计时("1小时30分后")、指定时刻("23:30",已过时刻顺延到明天)、或**任务结束后触发**(监控进程退出,或 CPU 持续空闲) - **七种电源动作** —— 关机 / 重启 / 睡眠 / 休眠 / **锁屏** / **注销** / **熄屏**(系统未启用休眠时自动隐藏该项) - **六种触发** —— 进程退出、CPU 空闲、**用户空闲**、**低电量**、**网络空闲**(下载完成关机)、**磁盘空闲**,参数界面直调 - **重复计划** —— 每天/每周固定时刻自动启动关机倒计时,由 Windows 任务计划程序托管,PCOff 未运行也准时触发(照常弹警告) - **60 秒挽回窗口** —— 到点前弹出置顶警告:取消 / 推迟(10分钟、20分钟、1小时,次数无上限)/ 立即执行。默认焦点在"推迟",永远不在危险动作 - **双保险** —— 即使 PCOff 进程崩溃,内核侧备用计时器(`shutdown /t`)也会在约 2 分钟后兜底触发。(仅关机/重启;睡眠/休眠无内核等价物,见 [ADR-005](docs/design/架构决策记录.md)) - **防睡眠** —— 定时期间阻止系统自动睡眠(屏幕可以关);单调钟 + 墙钟双时钟仲裁,改系统时间也不漂移 - **托盘守护** —— 关掉窗口继续在托盘守护,悬停查看剩余时间 - **命令行** —— `PCOff.exe 90m /r`、`PCOff.exe at 23:30`,在脚本末尾一行即可启动定时 - **日/夜双主题** —— 跟随系统或手动切换,即时生效 - **开机自启与检查更新** —— 可选开机自动启动;手动检查 Gitee 新版本 - **家长控制** —— 密码保护的定时:取消/退出需密码,到点强制关机,watchdog 自动拉起被杀进程 - **窗口可缩放** —— 拖拽边缘调大小(最小 384×528),尺寸记忆 - **设置面板与便携模式** —— 界面语言 / 关机前提醒 / CPU 空闲判定;exe 同目录放一个 `pcoff.portable` 文件即把配置存到自身目录 - **不到 100KB 单文件,零安装** —— .NET Framework 4.8 是 Win10(1903+)/ Win11 系统自带组件 - **中英双语界面** —— 跟随系统语言 > **v2.0 状态:** 上述功能均已实现,134 项单元测试覆盖。v1 关机路径已真机验收;新增的电源动作与触发模式已干跑验证,真机验收进行中(见[手动测试矩阵](docs/testing/手动测试矩阵.md))。 ## 下载 从 [Releases](../../releases) 下载 `PCOff.exe`,双击即用。Windows 10 1903+ 或 Windows 11,无需安装任何运行时。 ## 使用方法 1. 打开程序,选**倒计时**或**指定时刻**,填好时间; 2. 点"**开始定时**",点 `✕` 收进托盘,去睡觉; 3. 到点前 60 秒弹出警告窗——不理它就准时关机,也可以一键取消或推迟(按 Enter = 推迟 10 分钟)。 想先安全地试一遍全流程:`PCOff.exe --dry-run`(演习模式,到点只弹提示不真关机,界面带"演习模式"徽标)。 更多细节(托盘操作、警告窗协议、边界行为)见[用户手册](docs/用户使用手册.md)。 ## 配置选项 PCOff 没有设置页——所有选项都在一屏主界面上: | 选项 | 说明 | |---|---| | 倒计时 / 指定时刻 | 两种定时模式;上次使用的模式与数值自动记忆 | | 强制关机 | 跳过未保存的程序(可能丢数据),默认关闭 | | `--dry-run` | 命令行参数:演习模式,全流程真实运行但不真关机 | | 状态文件 | `%APPDATA%\PCOff\state.json`,记录记忆项与活动定时(崩溃重启自动恢复);删除即重置 | ## 常见问题 **为什么会看到系统通知说电脑将在比我设定更晚的时间关机?** 那是崩溃保护的兜底计时器(注册在目标时刻 +2 分钟)。正常情况下 PCOff 会在你设定的时刻准点关机,兜底永远不会触发;每次推迟后该通知会再次出现。设计细节见 [ADR-002](docs/design/架构决策记录.md)。 **强制关机会丢未保存的工作吗?** 会——这正是它的用途(保证一定关得掉)。默认关闭。 **杀毒软件报毒?** 无签名 exe + 调用关机 API 是典型误报画像。可自行从源码构建(见下)。 更多问题见[用户手册 FAQ](docs/用户使用手册.md#9-faq)。 ## 从源码构建 ```powershell dotnet build PCOff.sln -c Release # 产物: src/PCOff/bin/Release/net48/PCOff.exe dotnet test PCOff.sln -c Release # 134 项单元测试 ``` 需要 Windows + .NET SDK 8.0+(无需预装 targeting pack)。环境细节、tools/ 辅助脚本与 CI 说明见[构建指南](docs/development/构建指南.md)。 ## 文档 | 我想… | 看这里 | |---|---| | 学会使用 | [用户手册](docs/用户使用手册.md) | | 读懂/修改代码 | [架构与模块参考](docs/development/架构与模块参考.md) · [构建指南](docs/development/构建指南.md) | | 了解设计取舍 | [设计规范](docs/design/设计规范.md) · [架构决策记录](docs/design/架构决策记录.md) | | 了解路线图 | [开发计划](docs/development/开发计划.md) | | 参与测试 | [手动测试矩阵](docs/testing/手动测试矩阵.md) | 完整索引见 [docs/README.md](docs/README.md)。 ## 技术说明 C# / .NET Framework 4.8 + WPF,零第三方运行时依赖。为什么选 Fx4.8、为什么用内核侧兜底、EWX 标志语义等架构决策以 ADR 形式记录在 [docs/design/架构决策记录.md](docs/design/架构决策记录.md)。 ## 协议 [MIT](LICENSE)