# 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
[English](README.md) | **简体中文**
晚安定时关机小工具。设好时间去睡觉——电脑准时、安全地关机。
| 设置 | 运行中 | 关机前 60 秒 |
|:---:|:---:|:---:|
|  |  |  |
| 设置·夜晚 | 设置面板·夜晚 | 警告窗·夜晚 |
|:---:|:---:|:---:|
|  |  |  |
## 功能
- **三种定时模式** —— 倒计时("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)