windows启动后直接进入指定程序并且不显示欢迎界面和windows桌面
- 前言
- 开机进入指定程序
- 方法
- 问题
- 浅尝GINA和Credential Providers
- 关闭欢迎屏幕
前言
由于系统需求需要做到电脑开机后显示完windows加载页面就直接进入自己系统的界面,并且不显示登录欢迎页面,查阅了很多资料,得到的进入指定程序方法如下:
开机进入指定程序
方法
更改注册表(打开注册表快捷方式“WIN+R 输入regedit 按回车)
定位HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon, 将Shell键值改为你的程序文件名,如将explorer.exe替换为:d:\work\release\test.exe,推荐先改为notepad.exe进行测试:
问题
修改Shell键的方法确实可以实现开机后进入指定程序界面,但却无法跳过windows的欢迎屏幕,于是又查阅资料,很多都说操作如下可以去掉欢迎界面:
1. win键+R,输入“gpedit.msc”回车
2. 定位到计算机配置->管理模板->系统->登录
3. 双击右侧“登录时不显示欢迎屏幕”,点击“已启用”,确定
但是这个方法对win10系统根本就不起作用,该功能支持的平台仅Windows 2000,那些推荐这个方法的博主些为什么都不去验证一下呢?生气!!!
浅尝GINA和Credential Providers
没办法,继续翻墙查阅相关资料,也看了不少windows系统方面的文档,熟悉了操作系统的安全登录机制和身份机制。如windows xp的自定义GINA和windows 7版本以上的凭据提供程序。
所谓凭据就是提供了一种身份认证的方式,原有的 Windows 身份认证方式就是开机的时候需要你输入密码。而通过微软提供这套接口你可以实现丰富的身份认证方式,比如指纹、人脸和虹膜识别、USB-Key等任意修改 Windows 系统登录时的界面。比较有名的有些一些应该了解过的产品就是 ThinkPad 的指纹解锁功能,通过验证指纹来解锁计算机,当你了解了实现机制以后,硬件条件允许的情况下,你也可以做一套自己的身份认证系统。
想的是通过修改登录欢迎页面来模拟自己程序的启动页面,于是github上下载了CredentialProvider官方示例源码进行编译和修改注册表后弄来弄去最后做成这样:
发现Credential Providers自定义凭据提供程序并不能改变登录页面的背景图片和取消界面上的所有元素。最后发现Credential Providers文档中有如下一段话:
就是说 :
不显⽰⽤⼾名、登录状态或平铺图像这些功能现在都由登录 UI 处理,⽆需凭据提供程序进⾏任何额外⼯作”。
好吧,这不是它的职责,又回到了起点,于是又在虚拟机中去捣腾注册表了,最后经过不断的尝试,终于找到了解决办法!
关闭欢迎屏幕
前提:
首先电脑不能有开机密码,其次windows 10系统版本太低也不行,比如1803,1709都不行,后来换成windows10_21h1的business版和comsumer版亲测有效。
具体操作如下:
- 在“控制面板”>“程序”>“启用或关闭windows功能”>“设备锁定”中勾选“自定义登录”和“无商标的启动”项目,如图:
2. 打开注册表,定位到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Embedded\EmbeddedLogon”,设置BrandingNeutral如下:
Value值 | Description 描述 |
---|---|
1 | 禁用所有欢迎屏幕UI元素。 |
2 | 禁用电源按钮。 |
4 | 禁用“语言”按钮。 |
8 | 禁用“轻松访问”按钮。 |
16 | 禁用“切换”用户按钮。 |
32 | 禁用阻塞关闭解决程序(BSDR)屏幕,以便重新启动或关闭系统时,操作系统会立即强制关闭任何阻止系统关闭的应用程序。没有UI显示,用户没有机会取消关机过程。如果任何打开的应用程序有未保存的数据,则可能导致数据丢失。 |
因此将BrandingNeutral项设置为1即可。
您可以进一步将HideAutoLogonUI和HideFirstLogonAnimation 设置为 1 以隐藏欢迎屏幕 。
至此,你开机重启后应该再也见不到欢迎屏幕了。