Release Notes · ScreenStay · Mac & Windows
更新记录
ScreenStay 的 Mac 与 Windows 两个版本分别演进:Mac 版从菜单栏开关走到 macOS 15.4+ 的 Now Playing 修复;Windows 版(原 KeepAwake)从托盘常亮开关走到智能播放检测、WinUI 3 主界面与安装包。下方按平台分组,各自最新版本在前。
01版本总览
| 版本 | 日期 | 摘要 |
|---|---|---|
| Mac | ||
| Mac 1.2.3 | 2026-11-04 | 用系统 Perl 读取真实播放状态,修复暂停后仍判定播放 |
| Mac 1.2.2 | 2026-11-04 | 改用 JXA,修复严格模式不触发和绿点不出现 |
| Mac 1.2.1 | 2026-11-04 | 尝试 MRNowPlayingRequest,部分系统仍返回 Paused |
| Mac 1.2.0 | 2026-11-04 | 新增“仅系统媒体播放时触发”严格模式 |
| Mac 1.1.0 | 2026-11-03 | 右键菜单显示其他影响熄屏的应用 |
| Mac 1.0.0 | 2026-11-03 | 菜单栏开关、媒体检测、防熄屏、开机自启 |
| Windows | ||
| Win 1.5.3 | 2026-11-06 | WPF 现代化安装界面,修复高 DPI 字体毛刺 |
| Win 1.5.2 | 2026-11-06 | 更名 ScreenStay;新增 EXE 安装包与卸载程序 |
| Win 1.5.1 | 2026-11-05 | 阻止休眠页布局与解析修复;显示当前播放软件 |
| Win 1.5.0 | 2026-11-05 | 纯显示器三态托盘图标;中文友好电源请求 |
| Win 1.4.2 | 2026-11-05 | 托盘菜单居中、状态同步;双击快速开关 |
| Win 1.4.1 | 2026-11-05 | 托盘菜单重设计;单击打开主界面;主题自动保存 |
| Win 1.4.0 | 2026-11-05 | 全新 WinUI 3 主界面;托盘菜单精简为 4 项 |
| Win 1.3.1 | 2026-11-05 | 主题 4 种切换方式(日出日落 / 夜间模式) |
| Win 1.3.0 | 2026-11-05 | 新增自动切换日间 / 夜间主题 |
| Win 1.2.1 | 2026-11-04 | 「阻止休眠的程序」改用 WinUI 3 |
| Win 1.2.0 | 2026-11-04 | 查看阻止休眠的程序;弹窗提醒开关 |
| Win 1.1.0 | 2026-11-04 | 智能模式:仅播放音视频时保持常亮 |
| Win 1.0.0 | 2026-10-28 | 首个版本:托盘开关、常亮、开机自启 |
macOSMac 版更新记录
当前 1.2.3 · macOS 13+
Mac 1.2.3
最新稳定版 2026-11-04 · Build 6修复
- 修复音乐暂停后,菜单栏仍显示播放中、绿点不消失、电源断言继续持有的问题。
- 修复部分播放器暂停后
kMRMediaRemoteNowPlayingInfoPlaybackRate仍停留在1的误判。
变更
- 新增内置 Perl 辅助器:
nowplaying-probe.pl与libScreenStayNowPlaying.dylib。 - 通过
/usr/bin/perl调用MRMediaRemoteGetNowPlayingApplicationIsPlaying,取得真实播放/暂停状态。 - JXA 只负责读取应用名、标题、PID 和 Bundle ID;Perl 不可用时回退到 PlaybackRate、进程音频输出和
isCurrentlyPlaying。 - 严格模式暂停释放延迟缩短到约 1–3 秒。
--nowplaying增加perlAvailable、perlIsPlaying、pid、bundle等输出。
验证
perlAvailable=true
perlIsPlaying=false
source=jxa
isPlaying=false
playbackRate=0.0
暂停后电源断言释放,绿点消失;播放时 perlIsPlaying=true,断言正常创建。
Mac 1.2.2
2026-11-04 · Build 5修复
- 修复严格模式下无法识别实际播放状态、菜单栏绿点不出现。
- 绕开 macOS 15.4+ 对第三方 App 的 MediaRemote 状态限制。
变更
- 使用
/usr/bin/osascript执行 JXA 辅助脚本,读取MRNowPlayingRequest.localNowPlayingItem。 - 以
PlaybackRate判断播放,修复旧 C 接口固定返回 Paused 的问题。 --nowplaying增加source=jxa、isPlaying、playbackRate等输出。
1.2.2 解决了“检测不到播放”的问题,但暂停时某些播放器仍会保留 Rate=1,因此后续在 1.2.3 增加了 Perl 真实状态确认。
Mac 1.2.1
2026-11-04 · Build 4过渡修复
- 旧 C 接口被限制后,改用 Objective-C 桥接
MRNowPlayingRequest。 - 新增
--nowplaying诊断命令。
结果
能读取播放应用名称,但 macOS 27 上 localIsPlaying 与 localPlaybackState 仍返回过期的 Paused。该版本作为过渡记录保留,建议使用 1.2.3。
Mac 1.2.0
2026-11-04 · Build 3新增
- 右键菜单新增“仅系统媒体播放时触发”,默认开启。
- 严格模式只监听 macOS 右上角 Now Playing,普通提示音不会触发。
- 关闭严格模式后回退到 Core Audio + Now Playing 兼容模式。
- 开关状态持久化到 UserDefaults。
已知问题
受 macOS 15.4+ 权限限制,严格模式实际无法识别播放,绿点不出现;已在 1.2.2 / 1.2.3 修复。
Mac 1.1.0
2026-11-03 · Build 2新增
- 右键菜单新增“其他影响熄屏的应用”。
- 通过
IOPMCopyAssertionsByProcess读取NoDisplaySleepAssertion与PreventUserIdleDisplaySleep。 - 自动排除 ScreenStay 自己,按应用合并进程,悬停显示 PID 与断言类型。
- 新增
--blockers诊断命令。
Mac 1.0.0
2026-11-03 · Build 1首次发布
- 原生 macOS 菜单栏 App,无 Dock 图标;单击开关,右键菜单。
- Core Audio 输出 + Now Playing 检测,媒体停止后延迟释放。
- 创建
PreventUserIdleDisplaySleep与PreventUserIdleSystemSleep。 - SMAppService 开机自启;通用二进制;自定义图标;DMG / ZIP 安装包。
- 无需辅助功能、屏幕录制或麦克风权限;不联网、不上传数据。
WindowsWindows 版更新记录
当前 1.5.3 · Windows 10 / 11(v1.5.2 起由 KeepAwake 更名为 ScreenStay)
Windows 1.5.3
最新稳定版 2026-11-06安装界面
- 安装程序改用 WPF 现代化界面:
- 绿色渐变标题栏、圆角卡片、自绘复选框/输入框/按钮,Segoe UI 字体;
- 安装成功页(安装完成后显示「打开 ScreenStay / 完成」)。
- 修复字体毛刺:安装程序启用 PerMonitorV2 DPI 感知,WPF 矢量渲染,4K / 高缩放下文字清晰不模糊。
- 卸载程序同样加入 DPI 感知与 Segoe UI 字体。
版本
- 主程序 1.5.3;WinUI 3 主界面 1.5.3;安装包
ScreenStay-Setup-1.5.3.exe。
Windows 1.5.2
2026-11-06改名
- 软件正式更名为 ScreenStay(与 Mac 项目一致):
- 主程序:
ScreenStay.exe - 主界面:
ScreenStay.Viewer.exe(目录ScreenStay.Viewer) - 安装目录:
%LOCALAPPDATA%\Programs\ScreenStay - 旧版设置会自动迁移到
HKCU\Software\ScreenStay。
安装包 / 卸载
- 新增 EXE 安装包
ScreenStay-Setup-1.5.2.exe:图形安装向导,可选桌面快捷方式、开机自动启动、安装后启动。 - 安装完成后可在「设置 → 应用 → 已安装的应用」(或控制面板「程序和功能」)直接卸载。
- 安装目录中包含
Uninstall.exe;便携包内也包含Uninstall.exe,可直接卸载便携版。 - 安装包会清理旧版 KeepAwake 的开机启动项。
- 安装包未签名,首次运行如出现 SmartScreen 提示,请选择「更多信息 → 仍要运行」。
图标
- 软件图标(exe / 主界面标题栏与任务栏)改为绿色显示器;主界面显式设置窗口图标,不再显示红色。
版本
- 主程序 1.5.2;WinUI 3 主界面 1.5.2。
Windows 1.5.1
2026-11-05阻止休眠的程序
- 顶部按钮行改为自动换行:窗口拉窄时「显示详细信息」「复制到剪贴板」会自动换到下一行,不再被裁掉。
- 没有程序时,两块卡片统一显示单行中文(如「未检测到正在阻止系统睡眠的程序。」),不再显示多行占位文字。
- 修复解析:只提取 DISPLAY / SYSTEM 两段,AWAYMODE / 执行 / PERFBOOST / ACTIVELOCKSCREEN 等其它段落不再被误显示为「系统睡眠」里的多行内容。
主界面窗口
- 默认窗口大小改为按 DPI 和屏幕工作区自动计算:1080p 下约 1150x800,4K / 高缩放屏幕会自动放大,不再显得过小。
其它
- 软件图标(exe / 任务栏)改为绿色显示器。
- 常规页删除「这些设置与托盘菜单双向同步…」说明文字;阻止休眠页说明去掉「用中文」。
- 常规页新增「当前检测到的播放软件」区域,实时显示正在播放的软件(例如 QQMusic)。
版本
- 主程序 1.5.1;WinUI 3 主界面 1.5.1。
Windows 1.5.0
2026-11-05托盘图标
- 三个状态图标简化为纯「显示器」外形,去掉太阳、暂停符号、红斜杠等额外符号。
- 仅用颜色区分状态:
- 红色显示器:已开启,检测到播放
- 绿色显示器:已开启,无音视频播放 / 播放暂停缓冲中
- 灰色显示器:自动防息屏未开启
阻止休眠的程序
- 默认改为中文友好显示:分「屏幕显示(阻止屏幕关闭)」和「系统睡眠(阻止系统睡眠)」两类,只列程序名称,不再直接展示英文原始字段和长路径。
- 新增「显示详细信息」按钮:点击后显示原始
powercfg /requests输出(再点隐藏)。 - 自动从进程路径提取程序名,自动识别中英文标题(DISPLAY/显示、SYSTEM/系统),忽略 None / 无 等占位内容。
版本
- 主程序 1.5.0;WinUI 3 主界面 1.5.0。
Windows 1.4.2
2026-11-05修复
- 托盘右键菜单文字改为在每一项内垂直居中,不再整体偏上。
- 托盘菜单切换「自动防息屏」后,主界面「常规」页的开关会在约 2 秒内自动同步,不需要切换页面。
- 主界面标题栏改为跟随系统浅色 / 深色主题(
AppWindowTitleBar.PreferredTheme),系统切到深色时标题栏自动变黑。
托盘图标
- 新增双击托盘图标快速开关自动防息屏(单击仍打开主界面;双击不会误触发主界面)。
Windows 1.4.1
2026-11-05托盘菜单与状态
- 托盘右键菜单重新设计:圆角卡片、悬停高亮胶囊、Segoe UI 字体、自绘勾选标记,颜色跟随系统浅色 / 深色主题,更接近 Windows 11 系统菜单。
- 「当前状态」移到右键菜单最上方;状态文字改为 4 种:
自动防息屏未开启已开启,无音视频播放已开启,检测到播放已开启,播放暂停缓冲中- 托盘图标悬停提示同步显示上面的状态文字。
- 单击托盘图标打开主界面(原来是双击);主界面已打开时再次单击会激活已有窗口。
主界面
- 「常规」页顶部新增「当前监测状态」卡片,每 2 秒自动刷新。
- 「主题」页去掉「保存」「重新读取」按钮:修改切换方式、时间、城市等任何设置都会自动保存;开启自动切换开关后约 10~15 秒生效。
- 修复「弹窗提醒」开关:切换后立即写入设置、更新提示文字并给出反馈,与主程序状态保持一致。
版本
- 主程序 1.4.1(约 100 KB);WinUI 3 主界面 1.4.1。
Windows 1.4.0
2026-11-05全新 WinUI 3 主界面(布局参考 Auto Dark Mode)
- 新增 WinUI 3 主界面,左侧导航:常规 / 主题 / 阻止休眠的程序 / 使用说明 / 关于。
- 常规:自动防息屏开关、开机自动启动、弹窗提醒、查看电源请求入口。
- 主题:原有 4 种日间 / 夜间切换方式全部迁入;保存设置不再关闭窗口。
- 阻止休眠的程序:内嵌显示报告,支持刷新(UAC 提权)与复制。
- 使用说明 / 关于:帮助内容与版本、路径信息。
- 托盘右键菜单精简为 4 项:自动防息屏开关、当前状态、打开主页面、退出;其余设置全部移到主界面。
- 双击托盘图标打开主界面;主程序已在运行时再次双击 exe 也会打开主界面。
- 主界面只允许一个实例(命名互斥体 + 窗口激活);主程序同样保持单实例。
- 主程序每 3 秒同步一次注册表开关,主界面里的修改约 3 秒内自动生效。
- 版本号升级为 1.4.0(主程序约 96 KB;WinUI 3 主界面)。
Windows 1.3.1
2026-11-05主题设置增强(4 种切换方式)
- 自定义时间:保留原有的「日间开始 / 夜间开始」固定时间设置。
- 日出日落(自动定位):调用 Windows 定位服务获取经纬度,自动计算当地日出 / 日落时间(NOAA 简化算法,精度约 1~2 分钟)。
- 日出日落(手动选择城市):内置 50 个常用城市(含国内主要城市和部分国际城市),选择后按该城市经纬度计算日出 / 日落;窗口内实时显示计算结果。
- 跟随 Windows 夜间模式:读取 Windows 夜间模式(Night Light)当前状态,开启时使用深色主题、关闭时使用浅色主题;读取失败时自动回退到自定义时间。
- 极昼 / 极夜或坐标无效时自动回退到固定时间。
设置窗口改进
- 设置窗口重做:新增「切换方式」下拉框;按所选方式显示对应设置区域;实时显示日出 / 日落预览。
- 修复多开问题:主题设置窗口现在只允许一个实例——再次点击菜单会激活已打开的窗口,而不是再开一个(主程序查找窗口 + 查看器命名互斥体双重保护)。
内部实现
- 新增共享模块
shared/SunCalculator.cs(日出日落计算)与shared/NightLightState.cs(Bond CompactBinary v1 解析 CloudStore 夜间模式状态),主程序与 WinUI 3 窗口共用。 - 自检新增:主题模式 / 坐标 / 城市读写、日出日落计算、Windows 夜间模式状态解析(字节级 + 实际注册表)。
- 版本号升级为 1.3.1(主程序与 WinUI 3 查看器 / 设置窗口均为 1.3.1)。
已知限制
- 自动定位需要 Windows 位置服务可用,且「允许桌面应用访问位置信息」已开启;失败时可改用手动选择城市。
- 夜间模式数据结构为微软未公开格式,未来系统更新可能变化;读取失败时自动回退自定义时间。
- 主题切换仍只切换浅色 / 深色主题,不切换壁纸。
Windows 1.3.0
2026-11-05新增:自动切换日间 / 夜间主题
- 右键菜单新增「自动切换日间/夜间主题」开关:按设定时间自动切换 Windows 的浅色 / 深色主题。
- 同时切换应用主题(
AppsUseLightTheme)与系统主题(SystemUsesLightTheme,任务栏 / 开始菜单等)。 - 切换后广播
WM_SETTINGCHANGE/WM_THEMECHANGED,已打开的程序会刷新配色。 - 日间开始 / 夜间开始时间可自定义(24 小时制),保存后约 10~15 秒内生效。
- 支持跨午夜时间段(例如日间 19:00、夜间 07:00 也能正确判断)。
- 只在计划时间点切换一次,不会持续强制覆盖用户手动调整的主题。
- 新增 WinUI 3「日间/夜间主题设置…」窗口(与查看器同一程序,
--settings模式): - 开关、两个 24 小时制时间选择器、取消 / 保存;显示当前系统主题(深色 / 浅色)。
- 开启自动切换时会检测其它主题工具(Auto Dark Mode / PowerToys Light Switch),
版本
- 主程序 1.3.0(程序集 1.3.0.0);WinUI 3 查看器 / 设置窗口 1.3.0。
兼容与限制
- 主题设置保存在
HKCU\Software\ScreenStay:AutoTheme、ThemeDayStart、ThemeNightStart。 - 若同时运行 Auto Dark Mode / PowerToys Light Switch,两者会互相覆盖主题,请禁用其一。
- 暂不切换壁纸(Auto Dark Mode 的壁纸功能),只切换浅色 / 深色主题。
- 日间 / 夜间按本地时间固定时间段判断,不使用日出日落定位。
Windows 1.2.1
2026-11-04界面优化
- 「查看阻止休眠的程序」窗口改用 WinUI 3(Windows App SDK 2.6.5)实现:
- 全新 Fluent Design 界面:Mica 背景、圆角卡片、Segoe UI 变量字体、强调色按钮;
- 跟随系统浅色 / 深色主题自动切换;
- 等宽字体展示进程列表,文本可选择,底部为「复制到剪贴板」+ 强调色「关闭」;
- 窗口 1000×760,适配高 DPI(PerMonitorV2)。
- 原 WinForms 查看窗口保留为回退方案:当
ScreenStay.Viewer\不存在、或系统缺少 Windows App Runtime 时自动使用内置窗口。
构建与打包
- 新增 WinUI 3 查看器工程
viewer/,以及构建脚本viewer\build-viewer.cmd/viewer\build-viewer.ps1(需要 .NET 8 SDK)。 - 查看器采用框架依赖方式,输出约 37 MB,放在
ScreenStay.Viewer\子目录;主程序仍是约 85 KB 的单文件。 - 便携包 zip 现在包含
ScreenStay.Viewer\目录;如果不需要 WinUI 3 窗口,可以删除该目录,程序会自动回退到内置窗口。 - 修复构建脚本中中文注释导致的 PowerShell 解析问题(脚本改为纯 ASCII)。
版本
- 主程序版本 1.2.1(程序集 1.2.1.0);查看器版本 1.2.1。
已知限制
- WinUI 3 查看器需要系统安装 Windows App Runtime 2.6.5(本机已安装;缺少时自动回退内置窗口)。
- 查看器体积约 37 MB(WinUI 3 依赖 Windows SDK 投影与 WinUI 运行时组件),主程序体积不受影响。
Windows 1.2.0
2026-11-04新增
- 右键菜单新增「查看阻止休眠的程序…」:
- 读取 Windows 系统电源请求(
powercfg /requests),列出当前持有显示 / 系统唤醒请求的进程及原因; - 浏览器、播放器、下载工具、会议软件等正在阻止熄屏的程序都会列出来;
- 该数据受 Windows 限制,需要管理员权限:点击菜单后会弹出 UAC 提示,确认后才会读取;
- 结果在独立窗口中显示,支持滚动查看和「复制到剪贴板」。
- 右键菜单新增「关闭 Windows 弹窗提醒」:
- 勾选后不再显示本程序的气泡 / 通知弹窗(启动提示、开关提示、自启提示等);
- 设置会记忆(
HKCU\Software\ScreenStay\Notifications),下次启动继续生效; - 再次点击即可恢复提醒。
内部实现
- 新增隐藏参数
--dumprequests <报告文件>:以管理员身份运行时调用powercfg /requests收集输出并写入报告文件,供主实例展示。 - 新增隐藏参数
--viewrequests <报告文件>:打开查看窗口(用于调试 / 脚本调用)。 - 新增
RequestsViewer窗口(只读文本 + 复制 + 关闭),自动规范化换行,使用 Consolas 字体显示进程路径。 - 新增通知开关持久化;所有气泡 / 通知弹窗统一经过
ShowBalloon并受该开关控制。 - 自检项增加到 7 项(新增弹窗提醒开关读写检查)。
- 版本号升级为 1.2.0(程序集 1.2.0.0,产品 1.2.0)。
升级说明
- 直接覆盖 exe 即可,原有设置(智能模式开关、通知开关)与开机自启项都会保留。
- 旧版正在运行时请先「右键托盘图标 → 退出」再覆盖。
已知限制
- 「查看阻止休眠的程序」每次打开都会触发一次 UAC 提权(Windows 只允许管理员读取电源请求,属于系统限制)。
- 极少数系统(没有电源请求或 powercfg 不可用)可能显示空列表或错误信息。
Windows 1.1.0
2026-11-04功能变更
- 「保持屏幕常亮」升级为「播放音视频时保持屏幕常亮」的智能模式:
- 开启后每 3 秒检测一次系统音频会话(WASAPI),判断是否有音乐 / 视频正在播放;
- 检测到播放时,才阻止屏幕关闭与系统空闲睡眠,并自动点亮已关闭的屏幕;
- 没有播放时(播放结束后再缓冲 10 秒),立即撤销唤醒请求,把熄屏 / 睡眠交还给 Windows 电源管理;
- 静音播放同样能识别(音频会话仍为 Active),所以静音看视频也会保持屏幕常亮。
- 托盘图标新增「监测中」状态,共三种:
- 绿色 + 太阳:正在播放,保持屏幕常亮;
- 绿色 + 暂停符号:已开启监测,等待播放;
- 灰色 + 红斜杠:已关闭。
- 右键菜单顶部新增「状态」行,实时显示当前状态;开关项文字改为「播放音视频时保持屏幕常亮」。
- 启动提示、双击切换、使用说明等文案同步更新。
内部实现
- 新增
MediaDetector(WASAPI /IAudioSessionManager2):枚举默认音频设备上的音频会话,检查会话状态是否为Active,并正确释放 COM 对象。 - 新增 3 秒监测定时器与「播放结束后 10 秒缓冲」,避免切歌 / 缓冲间隙反复切换电源请求。
- 自检新增「音频会话检测接口可用」和三图标资源检查,自检项由 5 项增加到 6 项。
- 版本号升级为 1.1.0(程序集版本 1.1.0.0,产品版本 1.1.0)。
兼容与升级
- 设置项沿用
HKEY_CURRENT_USER\Software\ScreenStay\Awake,含义变为「智能模式开关」,升级后保留原有开关状态。 - 开机自启动键名不变(
HKCU\...\Run\ScreenStay),覆盖 exe 后原启动项继续有效。 - 若旧版 exe 正在运行,请先「右键托盘图标 → 退出」再覆盖安装。
已知限制
- 检测基于默认音频设备的音频会话:
- 完全没有声音的视频/音频(例如纯静音音轨)仍会被识别为播放(会话处于 Active);
- 使用 ASIO 或独占直通、不经过 Windows 音频引擎的极少数播放器可能检测不到;
- 多设备同时播放时,只要默认设备上有会话即可识别。
- 程序没有数字签名,SmartScreen / 安全软件可能提示,请选择「仍要运行」或加入信任。
Windows 1.0.0
2026-10-28- 首个版本。
- 托盘常驻,右键菜单开关「保持屏幕常亮」/「开机自动启动」。
- 通过
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED)无限期阻止屏幕休眠与系统睡眠。 - 左键双击托盘图标快速切换;状态记忆、单实例;开机自启动(HKCU Run,无需管理员)。
- 两种状态图标:绿色 + 太阳(开启)、灰色 + 红斜杠(关闭)。
- 命令行自检:
ScreenStay.exe --selftest 报告.txt。
02升级建议
Mac:从任意旧版本升级,请使用 1.2.3。 如果之前注册过开机自启,移动 App 到 Applications 后,建议在右键菜单中关闭再重新打开一次“开机自启”。升级不会清除已有偏好设置:总开关、严格模式、登录项状态都会保留。
Windows:建议使用 1.5.3 安装包。 旧版正在运行时请先「右键托盘图标 → 退出」再安装或覆盖;安装包会清理旧版 KeepAwake 的开机启动项,旧设置会自动迁移到
HKCU\Software\ScreenStay。