Repository navigation
Releases
v0.5.3
DeepSleep For Windows v0.5.3 - Beta
本次更新中修复了下列问题:
- 托盘图标一直不出现,界面上没有图标也没有报错
- 切换要修改的电源计划时,下面的设置不刷新,也不说为什么
本次更新中做出了下列优化:
- 电源设置面板第一行显示「正在编辑:哪个计划」,换计划一眼看得出来
- 读取电源设置失败时,面板里直接写明原因,不再是一片空白
v0.5.2
DeepSleep For Windows v0.5.2 - Beta
本次更新中修复了下列问题:
- 遥测状态读不出来,界面上显示
argument 1: OverflowError: int too long to convert - 托盘图标仍然不出现,装完之后不注销重登就一直看不到
本次更新中做出了下列优化:
- 托盘图标改由窗口进程自己创建,关掉窗口只是收起来,图标留着,点一下回来
- 托盘菜单可以打开主界面、立即锁屏、保持唤醒、切换电源计划、退出
- 老版本留下的独立托盘任务会在启动时清掉,不会再冒出第二个图标
- 拿到系统句柄的那批调用统一声明了参数类型,不再在 64 位上溢出
v0.5.1
DeepSleep For Windows v0.5.1 - Beta
本次更新中修复了下列问题:
- 安装后台服务时报告
argument 1: OverflowError,UAC 同意之后界面上只剩这一句 - 切换要修改的电源计划时,下方的电源设置不刷新
- 电源设置的分组标题显示成一串 UUID
- 复制过同名计划后,两个同名计划在下拉框里分不开,切换其中一个看起来没反应
- 托盘图标不出现,装完之后不注销重登就一直看不到
本次更新中做出了下列优化:
- 托盘图标会在打开窗口时被拉起,不再只依赖登录
- 托盘只保留一个实例,不会出现两个图标
本次更新中添加了下列功能:
- 概览页显示当前电源计划和切换原因,以及距空闲阈值还有多久
- 临时保持唤醒:30 分钟 / 1 小时 / 2 小时 / 8 小时,到点自动恢复,命令行用
hold 30与hold off - 一条规则可以加多个条件,并支持优先级
- 电源设置按显示、睡眠、硬盘、处理器等分组展示
- 日志页支持搜索和按级别筛选
Ctrl+1到Ctrl+5切换页面,Esc关闭进程选择弹窗
v0.5.0
DeepSleep For Windows(Beta) 0.5.0
界面重做,加了临时的"别睡一会儿"。
第一页现在说人话
打开窗口第一眼从「后台服务」换成了概览:
- 大字是当前电源计划
- 下面一行写着它为什么是这个计划——"你在用电脑"、"已经离开 15 分钟,按空闲计划处理"、"规则「夜间省电」命中"
- 右边是空闲计时和一条进度条,看得见离阈值还有多远
后台服务那一条从一整块面板收成了一行。它不出问题时不该占地方。
临时不睡觉
概览上有四个按钮:30 分钟、1 小时、2 小时、8 小时。点一下,到点自己恢复,不用记着回来关。
关掉窗口也照样有效,重启程序也不会丢。开始之后上面会显示还剩多久。
托盘图标右键菜单里也有同一组,还有一条「取消,让它照常睡」。
不想点界面的话:
DeepSleepForWindows.exe hold 30 接下来 30 分钟不睡
DeepSleepForWindows.exe hold off 取消
这些只影响睡不睡,不影响用哪个电源计划。空闲逻辑照常切计划。
规则可以加多条条件
以前一条规则只能有一个条件。引擎本来就支持「全部成立才触发」,只是界面只给了一个。
现在是条件列表,加几条都行。比如「周一至周五」+「09:00-18:00」+「空闲超过 5 分钟」可以在同一条规则里。
规则也带优先级了,数字大的先执行。两条同时命中时靠它决定顺序。
电源页
- 四张卡改成两列,不再出现第四张孤零零掉到第二行
- 计划设置按「显示 / 睡眠 / 硬盘 / 处理器」分组,不再是十一行数字平铺
- 下拉框里的选项已经写了「10 分钟」,右边不再重复一个「分钟」
日志
多了搜索框和「全部 / 警告 / 错误」切换,右上角显示当前筛出多少行。
概览页最下面显示最近六条,有警告会标黄。
界面
Ctrl+1到Ctrl+5切页Esc关掉进程选择弹窗
修掉的
进程选择弹窗没有遮罩、不居中。 上一版修「弹窗一进来就显示」的时候,那条隐藏规则被插进了样式块的中间,后半段(居中、半透明遮罩、背景模糊、弹出动画)全部变成解析错误被丢掉。
动作里的计划下拉一开始是空的。 新建规则选「切换电源计划」时,计划列表是空的,要换个动作类型再换回来才出现。
说明
这个版本改的是界面和几个新功能。托盘菜单、电源计划读写、遥测开关都只能在 Windows 上跑,自动化测试用的是假的托盘库和假 DOM,验证的是逻辑不是系统调用。真机上有问题继续报。
v0.4.2
DeepSleep For Windows(Beta) 0.4.2
修托盘图标不出现。
消失的图标
用的是第三方托盘库,它调用 Windows 加图标的接口之后不看返回值。那个接口返回 0 表示没加上——托盘区还没建好、或者资源管理器重启过——库既不报错也不重试。于是程序在跑、日志在写,图标就是没有。
两种情况必中:
- 开机自动启动的任务比资源管理器画出托盘区更早。每次登录都赌一次,输一次这次开机就没图标。
- 资源管理器重启(崩了,或者你手动重启它)。托盘区里的图标全部被销毁,不主动往回加的程序再也回不来。
现在做法:
- 加图标之前先等托盘区存在,最多等 60 秒。等不到也照常启动,只是记一条日志。
- 图标加上之后一直盯着。托盘区消失再出现,就把图标删掉重新加一遍。
- 顺带修了托盘心跳只在启动时写一次的问题。以前图标明明在,20 秒后所有问「托盘在不在」的地方都会答不在,窗口里显示的状态是错的。
新增:doctor 会告诉你托盘任务在不在
以前 doctor 只报后台服务和代理的状态,不问托盘。于是「图标没出现」和「托盘任务根本没装上」看起来一模一样。
现在多两行:
tray task: True
tray alive: False
tray task 是任务有没有注册,tray alive 是托盘进程最近 20 秒内有没有写心跳。
如果还是没有图标
Windows 11 默认把新出现的托盘图标收进任务栏右边的小箭头里。先点开那个箭头找一下。
还是找不到,把 %ProgramData%\DeepSleepForWindows\ 或 %LOCALAPPDATA%\DeepSleepForWindows\ 下面的日志发出来,里面有「托盘区等到了没有」和「图标加了几次」的记录。
说明
这个版本只改了 Windows 专用的那段代码,写完没有在真机上验证过。判断依据是那个库的源码里确实不看返回值、以及设置可见性会短路,但没在 Windows 上跑过。有问题继续报。
v0.4.1
DeepSleep For Windows(Beta) 0.4.1
修托盘图标不出现。
消失的图标
用的是第三方托盘库,它调用 Windows 加图标的接口之后不看返回值。那个接口返回 0 表示没加上——托盘区还没建好、或者资源管理器重启过——库既不报错也不重试。于是程序在跑、日志在写,图标就是没有。
两种情况必中:
- 开机自动启动的任务比资源管理器画出托盘区更早。每次登录都赌一次,输一次这次开机就没图标。
- 资源管理器重启(崩了,或者你手动重启它)。托盘区里的图标全部被销毁,不主动往回加的程序再也回不来。
现在做法:
- 加图标之前先等托盘区存在,最多等 60 秒。等不到也照常启动,只是记一条日志。
- 图标加上之后一直盯着。托盘区消失再出现,就把图标删掉重新加一遍。
- 顺带修了托盘心跳只在启动时写一次的问题。以前图标明明在,20 秒后所有问「托盘在不在」的地方都会答不在,窗口里显示的状态是错的。
如果还是没有图标
Windows 11 默认把新出现的托盘图标收进任务栏右边的小箭头里。先点开那个箭头找一下。
还是找不到,把 %ProgramData%\DeepSleepForWindows\ 或 %LOCALAPPDATA%\DeepSleepForWindows\ 下面的日志发出来,里面有「托盘区等到了没有」和「图标加了几次」的记录。
说明
这个版本只改了 Windows 专用的那段代码,写完没有在真机上验证过。判断依据是那个库的源码里确实不看返回值、以及设置可见性会短路,但没在 Windows 上跑过。有问题继续报。
v0.4.0
DeepSleep For Windows(Beta) 0.4.0
这个版本把几处根子上的问题改了。
不用管理员权限也能打开
以前双击打不开、必须右键「以管理员身份运行」,是因为程序一启动就管 Windows 要管理员权限,被拒绝之后就没有窗口了。
现在窗口本身就是普通权限运行,不再要权限。只有装后台服务、改电源计划内容、关遥测这几个动作才提权,而且只是弹一个只做那一件事的小进程,窗口留在原地等你。
程序有一份自己的副本
任务里写死的是那份副本的路径,不是你下载的那个文件。
以前你从下载文件夹跑起来,任务就指着「下载」文件夹里的 exe。你把下载清空了,后台就没了,而且没有任何提示。
现在程序启动时会把自身复制到 %LOCALAPPDATA%\DeepSleepForWindows\app\,用 SHA-256 判断副本是不是当前这个版本:不一样就替换,一样就不动。任务永远指这个固定路径。
后台不会莫名其妙消失
计划任务改成用 XML 注册,多写了这几项:
- 任务停了自动重启,一分钟后再来,最多十次
- 不设运行时长上限(默认是三天,到点就杀,看起来就像自己消失)
- 电池供电时也照常运行
- 不允许同时跑两份
- 错过启动时间的话,一有机会就补上
守护进程用 SYSTEM 身份注册,开机就起,不用等人登录。代理和托盘用当前登录用户。
托盘图标
以前的任务写的是「登录时启动」,而你装的时候早就登录过了,所以它要等到下次开机才会出现。
现在装完立刻启动三个任务。窗口里也会直接告诉你图标到底起来没有。
微软遥测
系统页多了一个开关,关掉就是真关:
- 注册表策略全部写成禁止
- DiagTrack 等相关服务停掉并设为禁用
- 遥测域名写进 hosts 屏蔽
- 计划任务里相关的也禁用
打开或关闭都是即时生效,不需要重启。开关的状态是从机器上读回来的,不是记着「你点过」。
读取这些状态全部走结构化接口(注册表、服务管理器、任务 XML),不解析 sc query 或 schtasks 的输出,所以中文系统的结果和英文系统一样准。
其它
- 新增
task-xml命令,可以导出计划任务的 XML 看它到底会做什么 - 新增
start/stop命令 selftest会同时检查托盘图标能不能画出来- 命令行输出不再在中文系统上乱码
- 构建和测试全部在 GitHub Actions 上跑,CI 会真的把任务 XML 交给调度器验证一遍,也会验证程序副本确实被复制出来
v0.3.8
DeepSleep For Windows(Beta) 0.3.8
修复双击无响应、WebView2 初始化失败、进程残留锁文件等核心问题。
修复
- 双击启动无响应:非管理员双击时,提权标记未被命令行解析器识别,导致提权副本启动即报错退出。现已修复命令行解析,
--winsleep-elevated标记正确识别。 - WebView2 初始化失败 (0x80070578):设置
WEBVIEW2_USER_DATA_FOLDER环境变量与 pywebview 设置,指向 ProgramData 目录,解决默认位置不可用导致的初始化异常。 - 后台服务启动后写不进日志:日志文件由提权窗口创建归管理员所有,普通用户运行的守护进程无法写入。现在设置日志时自动补齐用户写权限(
core/acl.py)。 - 进程残留锁文件阻塞启动:守护进程启动时清理
window.lock,防止异常退出留下的锁文件误判为有窗口在运行。 - 计划任务写死旧路径:安装任务现在永远指向当前 exe 位置,界面显示任务路径与当前 exe 是否一致,启动按钮等待守护进程应答。
改进
- 自动清理 WebView2 用户数据目录:避免旧版本残留数据导致初始化异常。
其它
- 版本号同步到 0.3.8
- CI 校验 tag / version.py / pyproject.toml 三者版本一致
v0.3.7
DeepSleep For Windows(Beta) 0.3.5
主窗口自动提权、托盘图标可见、启动更快。
新增/改进
- 主窗口自动提权:双击启动时,若检测到非管理员权限,会自动请求提权并重新启动。这样就能直接注册计划任务、切换电源计划,不用再手工右键“以管理员身份运行”了。
- 托盘图标默认可见(Windows 11):改用
pystray的 Windows 11 原生后端,图标不再默认被收进“显示隐藏的图标”里。 - 启动速度优化:窗口启动时去掉了部分不必要的日志初始化,体感打开更快。
修复
- 后台服务在主窗口关闭后停止:主窗口关闭时不再强制结束进程,而是只是隐藏;后台守护进程、代理进程、托盘进程仍然在后台运行,日志持续写入。
- 非管理员启动无法看到主窗口:现在双击会自动请求提权,提权成功后重新启动并显示窗口。
- 主程序双击到主窗口内容加载完成耗时过长:去掉了窗口启动时的冗余日志初始化,webview 直接加载本地 HTML,体感打开更快。
其它
- 版本号同步到 0.3.5
- 自动裁剪日志不再写入“已裁剪”记录(后台服务自动裁剪不写日志,手动点击才写)
v0.3.6
DeepSleep For Windows(Beta) 0.3.5
主窗口自动提权、托盘图标可见、启动更快。
新增/改进
- 主窗口自动提权:双击启动时,若检测到非管理员权限,会自动请求提权并重新启动。这样就能直接注册计划任务、切换电源计划,不用再手工右键“以管理员身份运行”了。
- 托盘图标默认可见(Windows 11):改用
pystray的 Windows 11 原生后端,图标不再默认被收进“显示隐藏的图标”里。 - 启动速度优化:窗口启动时去掉了部分不必要的日志初始化,体感打开更快。
修复
- 后台服务在主窗口关闭后停止:主窗口关闭时不再强制结束进程,而是只是隐藏;后台守护进程、代理进程、托盘进程仍然在后台运行,日志持续写入。
- 非管理员启动无法看到主窗口:现在双击会自动请求提权,提权成功后重新启动并显示窗口。
- 主程序双击到主窗口内容加载完成耗时过长:去掉了窗口启动时的冗余日志初始化,webview 直接加载本地 HTML,体感打开更快。
其它
- 版本号同步到 0.3.5
- 自动裁剪日志不再写入“已裁剪”记录(后台服务自动裁剪不写日志,手动点击才写)