在Windows资源管理器之前启动应用程序
某些安装应用程序停止(或似乎停止)正常的Windows引导。计算机启动后,用户登录,然后在其他人(如Windows资源管理器)之前启动安装程序。在Windows资源管理器之前启动应用程序
如何在我自己的程序中复制此行为?
例如
- OS引导
- 登录
- 程序运行时,更新等
- 运行的程序的其余部分(如Windows资源管理器,并不断在启动时运行的)
你可能会包装windows批处理文件.bat
约explorer.exe
@echo off
something.exe
explorer.exe
但不会真正确保它总是explorer.exe的
开始之前你可能改变一些注册表值来选择另一个“壳”,而不是探险家为。 。
如果这是你真正想要的。
如果要在shell启动之前启动应用程序,可以将值添加到注册表中的Userinit
值。在这个关键:
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows NT \ CURRENTVERSION \ Winlogon中
有一个名为Userinit
值。更改它,以便您的程序在userinit.exe之前运行。例如,外壳/一切初始化之前启动记事本:
C:\ WINDOWS \ SYSTEM32 \ NOTEPAD.EXE,C:\ WINDOWS \ SYSTEM32 \的userinit.exe
使用逗号分开应该开始的程序。
这适用于Windows XP,Vista和7
您通常会得到“拒绝访问”,所有的防病毒软件将禁止该应用程序。 – noober 2015-04-02 11:51:47
根据[tutorial](http://www.tenouk.com/ModuleP1.html),explorer run key在userinit之前设置。然而[这篇古文章](https://support.microsoft.com/en-us/kb/142905)陈述USERINIT负责启动资源管理器shell。在较新的系统上,这仍然是[案例](https://technet.microsoft.com/en-us/library/cc939862.aspx)。 – 2015-10-20 08:51:38
实际上尝试过这种方法,但它[在W7上无法工作](https://social.msdn.microsoft.com/Forums/vstudio/en-US/c810e785-894e-4b4f-be72-a12e35397126/running-a-程序在起动时?论坛= windowsgeneraldevelopmentissues&教授为必填)。但是,这里有人知道它是否适用于Vista之前? – 2015-12-07 10:04:11
你应该看一看的Windows Task Scheduler。任务可以计划在用户(特定或任何)登录时执行。 Windows开箱即用的UI说明了使用此标准Windows功能可以实现的功能。
另一种解决方案是编写一个Windows service(.msi Windows Installer实际上是一项服务)。
我不确定你将能够块尽管Windows资源管理器...
我还没有尝试过,但我认为这是由注册表项进行
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
还有更多的注册表项 - 看到完整的清单记录在这里: Definition of the RunOnce Keys in the Registry
要不是你使用案例我建议开始您的应用程序作为桌面外壳类似于“vcsjones”提出的解决方案。当程序结束时,您可以拨打explorer.exe
开始加载常规桌面。
你想让这个应用程序在浏览器启动之前做些什么? – 2011-02-23 13:36:13
该应用程序将检查更新,安装一些文件,提示用户输入信息,然后继续操作系统启动。 – jSherz 2011-02-23 14:22:34
这是**而不是**这些安装程序的功能。如果你告诉我们你想要完成的任务,肯定有人会告诉你一个更好的方法,而不是试图抢占Windows资源管理器。 – 2011-02-23 14:23:34