操作系统-操作系统锁屏实现原理

操作系统-操作系统锁屏实现原理

浮生未歇 发布于 2016-10-12 字数 175 浏览 1162 回复 4

一时对我们平时常用的功能有了好奇心:一般操作系统都会有锁屏功能,请各位大老们讨论下锁屏的原理,在锁屏之后都发生了那些事情?用代码该如何实现呢?求知若渴,不吝赐教!拜谢!

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

泛泛之交 2017-09-19 4 楼

锁屏一般是系统维护的,等级比普通软件要高。

一般操作系统都是多用户系统,允许多个用户同时处于活动状态。用户的鼠标键盘响应与显示等操作通过一个接口与目标连接完成,目标可以是桌面,也就是显示器、鼠标键盘这些,也可以是远程登录这样的接口,也可以不连接或连到一个不提供任何操作的假接口。

windows登录界面由系统进程winlogon维护的,以SYSTEM账户执行。
锁屏后,winlogon代替当前用户接管桌面,显示锁屏界面,当前用户被强迫断开,也就无法响应任何鼠标键盘的事件了,所有的窗口显示操作也因为没有取得接口而不再被处理了。用户再登录后,winlogon再恢复用户的连接,自己再去后台等着锁屏等操作的产生。

基本上操作系统都类似这个原理。

自己写的话,不大可能达到系统服务的高度,一般就采用钩子来实现了:用钩子截获鼠标键盘等操作,自己处理界面,然后拒绝下达消息,这样对于钩子后面的软件就无法获得鼠标键盘的消息了。
如果某个软件在锁屏软件下钩子之后也下了钩子,那么后来下钩子的也可以获取消息,所以锁屏软件还有比较狠的一招,定时不断地检查,保证自己总是在最顶层的,这样的操作很浪费资源。

归属感 2017-02-10 3 楼

不同的操作系统对锁屏的实现都不尽相同,关于这方面的资料比较少,在网上找到一篇自己实现锁屏的资料,仅供参考:
一种计算机软件锁屏技术

泛泛之交 2017-01-15 2 楼

各种炒作系统, 锁屏的原理一般都不同, 参考下这些文章介绍:
Winform 键盘钩子,锁屏小工具的实现
android锁屏原理

归属感 2017-01-01 1 楼

Android框架浅析之锁屏(Keyguard)机制原理。自己对于这部分也不是很熟悉,去查了下资料,这篇文章说的还比较详细,LZ有兴趣可以参考一下