如何为Win7及以上系统定制锁屏(及屏幕保护程序)?
定制Windows锁屏/屏保适配多用户共用常驻程序的方案
嘿,我之前刚好处理过类似的场景——多用户共用一个不能中断的常驻程序,还不能用注销/切换用户那套(毕竟会直接干掉进程)。针对Win7及以上系统,这里给你几个靠谱的方案,核心都是不终止后台程序同时实现屏幕锁定/保护:
一、系统原生功能改造(不用装额外软件)
1. 自定义锁屏界面+快速锁定
Windows自带的锁定功能(Win+L快捷键或者rundll32.exe user32.dll,LockWorkStation命令)其实完全不会终止当前会话的进程,只是把屏幕锁住,刚好符合你的需求。如果要自定义锁屏样式:
- Win7:先通过组策略解锁自定义背景权限——打开
gpedit.msc,依次找到「计算机配置→管理模板→控制面板→个性化」,把「强制使用默认登录背景」设为禁用。之后把你要的锁屏图片放到%SystemRoot%\System32\oobe\info\backgrounds目录下(如果没有这个文件夹就自己建),系统会自动识别使用。 - Win10/11:直接去「设置→个性化→锁屏界面」就能自定义背景、添加小部件,锁定还是用
Win+L或者上述命令,完全不影响后台程序。
2. 自制专属屏幕保护程序
如果你需要的是带保护功能的屏保(比如闲置一段时间自动触发),可以自己写一个简单的屏保:
- Windows的屏保本质是后缀为
.scr的可执行文件,用C#、VB.NET甚至AutoHotkey都能快速写一个:核心逻辑就是启动后全屏显示保护界面,检测到鼠标移动/键盘输入就退出,全程不碰会话登录状态,自然不会终止你的数独程序。 - 写完后把编译好的
.exe改名为.scr,放到C:\Windows\System32目录里,就能在系统的屏保设置里选它了。还可以加个简单的密码验证逻辑,防止无关人员随便操作。
二、任务计划自动化(懒人专属)
不想折腾开发的话,用系统自带的任务计划就能实现定时锁屏/启动屏保:
- 打开「任务计划程序」,新建任务:触发条件设为「当计算机空闲超过X分钟」,操作选「启动程序」,输入
rundll32.exe user32.dll,LockWorkStation(锁屏)或者C:\Windows\System32\你的自定义屏保.scr /s(启动屏保)。 - 这个方法完全依赖系统原生组件,没任何第三方依赖,还能保证后台程序一直跑。
三、必踩的坑要避开
- 绝对别用切换用户或注销!这俩操作会直接终止当前会话的所有进程,你的数独游戏肯定没了;
- 所有方案的核心都是保持当前用户会话处于活跃锁定状态,而不是切换到其他用户会话;
- 如果需要多用户在不同设备上操作同一个程序,可以开启远程桌面(Win7专业版及以上支持),设置允许多用户同时连接到当前会话——这样每个用户都能在自己的设备上操作同一个运行中的程序,锁屏时只是锁住当前会话,完全不影响程序运行。
内容的提问来源于stack exchange,提问作者TravelingFox




