I've personally never messed with those registry value's.. on the other hand...
here is how windows boot's up as stated "verbatim" this article below
https://answers.microsoft.com/en-us/windows/forum/all/how-to-start-program-before-user-logon-windows-7/2bff97c4-c037-437c-9fa7-b143a3ae5189
1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute. This can include instructions to schedule the running of chkdsk but not user programs.
2. Services start next, followed by the RunServicesOnce and RunServices registry keys (if present)
3. User then logs on to the system
4. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit. This points to the program C:\WINDOWS\system32\userinit.exe and the entry ends with a comma. Other programs can be started from this key by appending them and separating them with a comma.
5. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell. This should contain just one entry, explorer.exe.
6. Program entries in these 2 registry keys for ALL USERS start next:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run and \RunOnce
7. Program entries in these 2 registry keys for CURRENT USER start next:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run and \RunOnce
8. Programs in the Startup Folders of All Users and Current U
---------------------------------------------------------------------------------------------------------------------------------------------------
I recommend trying to...
1.run this as a scheduled task.
2.make sure other programs are not starting up that is slowing this program down.
3.increase the hardware of this machine to start this application.
Thanks for the tips.
I will tell you what I have done so far and how your tips don't workout so well. This has been in the making for a long time...
I did come across some of them as well.
5 programs start up and among them is startup delayer which is used to launch a bunch of other programs that mostly are for security reasons. Start up delayer organizes the programs and then at start up it launches another exe file called startup launcher.exe. This is the argument in the registry for it ""C:\Program Files\r2 Studios\Startup Delayer\Startup Launcher.exe" /LaunchType=Auto /LaunchApps=Common"
I tried to edit it but did not save the changes and did not want to mess with it any further after that. I saw it in the task manager after bootup doing nothing for 40-120 seconds before it starts launching the other programs and that is just too much of a big gap. Other programs sometimes boot a little faster and sometimes they are more immediate. I tried it on other profiles on the system and it was the same results.
I am using it on Win 8.1
I did use fire daemon (Can make programs into services) to get it to launch earlier but it could did not work with "startup launcher.exe". So I created another program as a service and a feature that Fire Daemon has is that it can pre launch a program before the service starts (I added service to the EMS load order group so that it launches early enough). Then I wrote a script that to launch the program that I needed but it launched the "startup launcher.exe" in session 0. So I modified the script to wait for an exe file before it launches and it worked and I tested it with a couple of programs but was still too slow.
The below is an example of the script.
@echo off
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
psexec -i 1 C:\Example.exe
psexec -i 2 C:\Example.exe
psexec -i 3 C:\Example.exe
psexec -i 4 C:\Example.exe
psexec -i 5 C:\Example.exe
psexec -i 6 C:\Example.exe
psexec -i 7 C:\Example.exe
Timeout /T 2
Exit
I wrote it to run on any of 7 sessions because I notices it would always be different.
I tried the two below scripts as well. The idea behind it is to allow more time for the programs to load before it finally allows me to do a full boot up.
@echo off
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
psexec -i 1 shutdown /L
psexec -i 2 shutdown /L
psexec -i 3 shutdown /L
psexec -i 4 shutdown /L
psexec -i 5 shutdown /L
psexec -i 6 shutdown /L
psexec -i 7 shutdown /L
Timeout /T 2
Exit
The above one worked a bit slow.
The next one worked very well but not every time.
@echo off
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
:search
tasklist|find "winlogon.exe"
IF %ERRORLEVEL% == 0 (GOTO :found)
TIMEOUT /T 1
GOTO :search
:found
timeout /T 10
nircmd.exe killprocess "winlogon.exe"
Timeout /T 2
It would end the session several times or run for over a min and then I would log on. It worked well but I am worried that it would cause other damages to the system if I keep on ending winlogon that way.