在前面的文章中,我介绍过如何替换Windows Shell,将桌面替换为自己的程序。
但是这么做会有个问题,就是桌面环境未被初始化,即使创建了explorer.exe进程,桌面也不会出现。
这里搜集了一些关于WInlogon,LogonUI和Userinit的一些理论知识,有兴趣的小伙伴可以了解一下。
Winlogon
Winlogon.exe位于%SystemRoot%\System32\Winlogon.exe
这个程序的描述如下图所示。
这个程序实际负责以下功能
1、用户登录
2、用户注销
3、处理Ctrl+Atl+Del按键
这里值得注意的是,这三个按键是无法被用户层的应用程序所拦截。
在过去很长一段时间里,我都在寻找拦截这三个按键的方式,但都以失败告终。
也是最近才知道,只有在内核层,例如开发键盘过滤驱动,才能做到真正的拦截。
但是在应用层,我们还是有几种办法可以限制Ctrl+Alt+Del
方法1
通过组策略,或者注意表,禁用Ctrl+Alt+Del
方法2
挂起Winlogon.exe,使之无法响应键盘按键。
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon