Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Application Start Before Windows Explorer

Some installation applications stop (or appear to stop) the normal windows booting. The computer starts, the user logs in and then the installation program starts before others (like Windows explorer).

How can I replicate this behaviour in my own program?

E.g.

  • OS Boot
  • Login
  • The program runs, updates etc.
  • The rest of the programs run (e.g. windows explorer and what ever runs on startup)
like image 796
jSherz Avatar asked Dec 09 '22 10:12

jSherz


2 Answers

If you want to start an application before the shell starts, you can add a value to the Userinit value in the registry. In this key:

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

There is a value named Userinit. Change it so your program is run before userinit.exe. For example, to start notepad before the shell/everything else is initialized:

C:\WINDOWS\system32\notepad.exe,C:\Windows\system32\userinit.exe

Use commas to separate the programs that should be started.

This works for Windows XP, Vista, and 7.

like image 152
vcsjones Avatar answered Dec 28 '22 12:12

vcsjones


I have not tried it but I assume that this is done by the registry entry

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup

There are even more registry keys - see the complete list documented here: Definition of the RunOnce Keys in the Registry

But for your use case I would recommend to start your application as desktop shell similar to the proposed solution by "vcsjones". When your program has finished you can call explorer.exe to start loading the regular desktop.

like image 43
Robert Avatar answered Dec 28 '22 14:12

Robert