实现基于 WPF 的 AutoShutdown 主界面,支持关机、重启、睡眠、休眠、唤醒、锁屏和注销等电源任务。 支持指定时间和倒计时计划、执行前提醒、系统关机撤销、Windows 唤醒任务、托盘运行、自定义图标以及 OmniNotify 通知适配。 修复关闭到托盘时的运行提醒,并支持单击托盘图标打开或收起主界面。 补充 README、发布配置和 win-x64 Release 输出要求。 Release: win-x64
57 lines
2.1 KiB
Markdown
57 lines
2.1 KiB
Markdown
# AutoShutdown
|
||
|
||
面向 Windows 10 及以上系统的自动电源任务工具,使用 C# WPF 和 .NET 8 开发,无第三方依赖。
|
||
|
||
## 功能
|
||
|
||
- 按指定日期时间或倒计时执行任务
|
||
- 支持关机、重启、睡眠、休眠、唤醒、锁屏、注销
|
||
- 关机/重启交给 Windows 系统计划执行,关闭应用后仍可生效
|
||
- 唤醒通过 Windows 任务计划程序实现,可从睡眠/休眠状态唤醒
|
||
- 支持强制关闭未响应程序、执行前提醒、撤销系统关机/重启
|
||
- 使用自定义应用图标,并支持系统托盘运行
|
||
- 点击窗口关闭按钮会最小化到托盘,只有通过托盘菜单才能真正退出
|
||
- 支持 OmniNotify 适配模式,可将原本的软件弹窗提示改为发送到 OmniNotify
|
||
- Debug 构建提供隐藏的界面自截图参数,用于开发者检查 UI
|
||
- Release 构建不会编译自截图逻辑,保持发布版本轻量
|
||
|
||
## 开发
|
||
|
||
```powershell
|
||
dotnet build
|
||
dotnet run
|
||
```
|
||
|
||
开发 UI 后可以运行隐藏截图命令,自动渲染主界面并保存图片:
|
||
|
||
```powershell
|
||
dotnet run -- --capture-ui=.\Screenshots\ui-review.png
|
||
dotnet run -- --capture-ui=.\Screenshots\ui-min.png --capture-size=960x720
|
||
dotnet run -- --capture-ui=.\Screenshots\ui-large.png --capture-size=2048x1152
|
||
```
|
||
|
||
该能力只在 Debug 构建中存在,不会出现在用户界面里。
|
||
|
||
## OmniNotify 适配
|
||
|
||
在主界面点击“通知设置”,或在托盘菜单中打开“OmniNotify 适配设置”。
|
||
|
||
- 软件本身:保留 AutoShutdown 原有弹窗/托盘提示
|
||
- OmniNotify:将原提示发送到 OmniNotify 的本地接口
|
||
- 默认监听地址:`http://127.0.0.1:19845/notify`
|
||
- 默认频道名:`default`
|
||
|
||
OmniNotify 需要先运行,并提前创建对应频道。设置保存到 `%LOCALAPPDATA%\AutoShutdown\notification-settings.json`。
|
||
|
||
## 发布
|
||
|
||
```powershell
|
||
dotnet publish -c Release -r win-x64
|
||
```
|
||
|
||
发布目录位于 `bin/Release/net8.0-windows/win-x64/publish`。
|
||
|
||
## 说明
|
||
|
||
普通 Windows 应用无法让已经完全断电的电脑自动开机。应用中的“唤醒”功能依赖 Windows 任务计划程序和系统电源设置,请在“电源选项”中允许唤醒计时器。
|