如何尽早启动自动运行程序?

Jen*_*ens 3 autostart windows-10

我们有想要在登录过程早期运行的软件。该软件修改或隐藏了用户桌面的某些元素,用户永远不应看到未修改的桌面。

现在,在 Windows 7 上,只需通过自动启动启动软件即可;显示桌面时,该软件已处于活动状态。

但是,对于 Windows 10,该软件会在最初显示桌面后几秒钟启动,因此对于我们的目的来说为时已晚。

有没有办法提前启动软件或者延迟桌面?

PS:我们正在做类似 kiosk 的嵌入式机器,所以我们真的很想这样做。

RJ-*_*RJ- 5

这个 stackoverflow question,您最好的选择是将程序作为服务运行。一种选择是使用NSSM。答案中的相关位:

来源:了解启动过程 - Windows 7 教程

Windows 7 的正常启动顺序是:

  1. 开机自检 (POST) 阶段
  2. 初始启动阶段
  3. Windows 启动管理器阶段
  4. Windows 引导加载程序阶段
  5. 内核加载阶段
  6. 登录阶段

启动可以采取的不同路径的高级概述

内核加载阶段 Windows 引导加载程序负责将 Windows 内核 ( Ntoskrnl.exe) 和 HAL加载到内存中。内核和 HAL 一起初始化一组称为 Windows 执行程序的软件功能。Windows 执行程序处理存储在注册表中的配置信息 HKLM\SYSTEM\CurrentControlSet并启动服务和驱动程序。以下部分提供有关内核加载阶段的更多详细信息。

登录阶段

Windows 子系统启动Winlogon.exe,这是一项系统服务,可让您登录和注销。Winlogon.exe然后执行以下操作:

  • 启动服务子系统 ( Services.exe),也称为 SCM。SCM 初始化注册表项 Start 在注册表子项中指定为 Autoload 的服务 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Servicename
  • 启动本地安全机构 (LSA) 进程 ( Lsass.exe)。
  • 在开始登录提示处解析Ctrl+ Alt+Delete键组合(如果计算机是 AD DS 域的一部分)。

登录用户界面 (LogonUI) 功能和凭据提供程序(可以是标准凭据提供程序或第三方凭据提供程序)收集用户名和密码(或其他凭据)并将此信息安全地传递给 LSA 进行身份验证。如果用户提供了有效凭据,则使用默认 Kerberos V 5 身份验证协议或 Windows NT LAN Manager (NTLM) 授予访问权限。

Winlogon 初始化安全和身份验证功能,而 PnP 初始化自动加载服务和驱动程序。用户登录后,注册表项LastKnownGood (位于HKLM\SYSTEM\Select)引用的控制集将更新为CurrentControlSet子项中的内容 。默认情况下,Winlogon 然后启动 Userinit.exe和 Windows 资源管理器外壳。然后 Userinit 可能会启动其他进程,包括:

  • 组策略设置生效适用于用户和计算机的组策略设置生效。
  • 启动程序运行当没有被组策略设置覆盖时,Windows 启动登录脚本、启动程序和在以下注册表子项和文件系统文件夹中引用的服务:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
    SystemDrive\Documents and Settings\All Users\Start Menu\Programs\Startup
    SystemDrive\Documents and Settings\username\Start Menu\Programs\Startup
    
    Run Code Online (Sandbox Code Playgroud)

安装 Windows 后,可能会将多个应用程序配置为默认启动,包括 Windows Defender。计算机制造商或 IT 部门可能会配置其他启动应用程序。

在用户成功登录到计算机之前,Windows 启动不会完成。如果在登录阶段启动失败,则说明配置为自动启动的服务或应用程序存在问题。