# 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 任务计划程序和系统电源设置,请在“电源选项”中允许唤醒计时器。