应用程序启动Windows资源管理器

时间:2011-02-23 13:25:35

标签: windows startup windows-explorer

某些安装应用程序停止(或似乎停止)正常的Windows启动。计算机启动,用户登录,然后安装程序在其他人(如Windows资源管理器)之前启动。

如何在我自己的程序中复制此行为?

E.g。

  • OS Boot
  • 登录
  • 程序运行,更新等。
  • 其他程序运行(例如Windows资源管理器以及启动时运行的程序)

4 个答案:

答案 0 :(得分:9)

如果要在shell启动之前启动应用程序,可以在注册表中为Userinit值添加值。在这个键中:

  

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon

有一个名为Userinit的值。更改它,以便您的程序在userinit.exe之前运行。例如,要在shell /其他所有其他内容初始化之前启动记事本:

  

C:\窗口\ system32 \ Notepad.exe的,C:\ Windows \ System32下\的userinit.exe

使用逗号分隔应该启动的程序。

适用于Windows XP,Vista和7。

答案 1 :(得分:4)

我没有尝试过,但我认为这是由注册表项

完成的
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup

还有更多的注册表项 - 请参阅此处记录的完整列表: Definition of the RunOnce Keys in the Registry

但是对于您的用例,我建议将您的应用程序作为桌面shell启动,类似于“vcsjones”提议的解决方案。程序完成后,您可以致电explorer.exe开始加载常规桌面。

答案 2 :(得分:0)

您可以在.bat

周围打包Windows批处理文件explorer.exe
@echo off
something.exe
explorer.exe

但这并不能确保它始终在explorer.exe之前启动

您可以更改某些注册表值以选择另一个“shell”而不是资源管理器。

如果那是你真正想要的。

答案 3 :(得分:0)

您应该查看Windows Task Scheduler。可以安排任务在用户(特定或任何)登录时执行。 Windows提供的开箱即用的UI说明了使用此标准Windows功能可以实现的功能。

另一个解决方案是编写Windows service(.msi Windows Installer实际上是一项服务)。

我不确定您是否能够阻止 Windows资源管理器......