Skip to content

v0.4.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 13:00
· 11 commits to main since this release

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 交给调度器验证一遍,也会验证程序副本确实被复制出来