Is there a way to make Windows 8 delay loading the start screen until all startup programs have loaded?

Currently Windows 8 will get to the start screen a good 10-15 seconds before my startup programs have loaded. Since these include my touchpad driver as well as a gamma correction program, I would prefer that they would load before this point. Is there anyway to do this - either by delaying Windows 8 showing the start screen, or perhaps by somehow having these programs run before reaching the login screen?


Create a startup script, the computer will wait for these to finish. So, you can either implement a simple sleep OR something that waits for both programs to be present, perhaps with a timeout to prevent the script from hanging and not allowing you to login.

How do I write a batch script with a timeout?

To be able to let a script wait the traditional trick has been to ping an IP that doesn't exist.

ping 192.192.192.192 -n 1 -w 10000 > nul

This command will try to send one ping and will let it time out in 10 seconds, as 10000 ms is 10 times 1000 ms. We pipe this into nul such that the output does not get shown, this might not be necessary as you are doing a startup script but it's placed here for completeness.

As mentioned by Bob in the comments, since Windows Vista you are also able to instead use:

timeout /T 10 > nul

More information about this variant can be found here.

How do I write a batch script that waits for a process to end?

An alternative is to use this batch script to wait for the processes to finish.

You need to place the set commands at tho top and everything starting from the :STOPPROC (including that line) at the bottom of your script, do not include the ----------- lines though.

Then, in the middle you can place calls to call :STOPPROC notepad.exe which will wait for each subsequent process to be closed.

How do I let the computer run my startup script?

See this link I've posted earlier which explains it in details:

  1. Open the Local Group Policy Editor.

  2. In the console tree, click Scripts (Startup/Shutdown). The path is Computer Configuration\Windows Settings\Scripts (Startup/Shutdown).

  3. In the results pane, double-click Startup.

  4. In the Startup Properties dialog box, click Add.

  5. In the Add a Script dialog box, do the following:

    • In the Script Name box, type the path to the script, or click Browse to search for the script file in the Netlogon shared folder on the domain controller.

    • In the Script Parameters box, type any parameters that you want, the same way as you would type them on the command line. For example, if your script includes parameters called //logo (display banner) and //I (interactive mode), type //logo //I.

  6. In the Startup Properties dialog box, specify the options that you want:

    • Startup Scripts for <Group Policy object>: Lists all the scripts that currently are assigned to the selected Group Policy object (GPO). If you assign multiple scripts, the scripts are processed in the order that you specify. To move a script up in the list, click it and then click Up. To move a script down in the list, click it and then click Down.

    • Add: Opens the Add a Script dialog box, where you can specify any additional scripts to use.

    • Edit: Opens the Edit Script dialog box, where you can modify script information, such as name and parameters.

    • Remove: Removes the selected script from the Startup Scripts list.

    • Show Files: Displays the script files that are stored in the selected GPO.

Is there another way that doesn't involve waiting?

Honestly, you might consider not to do this and just use your keyboard on the start screen instead. I would be bothered waiting longer on the login screen when I could already start a program using my keyboard...

Make sure to check out Windows8Fanatic's answer as well, to attempt to minimize the delay.


You can also speed up the loading of your application by disabling other apps which have a high impact on start-up. Thus you may only enable essential ones giving a speedup performance of few more seconds.

To Enable or Disable Startup Items in Task Manager

  1. Open Task Manager into the More details view, and click/tap on the Startup tab.
  2. To Disable a Startup Item Click/tap on a enabled startup item, and click/tap on the Disable button.
  3. When finished, you can close Task Manager.

If the Disable button is grayed out, then it means that you must be signed in as an administrator to be able to. Also you may try to disable atleast those having maximum startup impact.

Startup Impact in Taskbar


Create a startup script that looks something like this:

taskkill /im explorer.exe /f
Wait for touchpad driver and gamma correction program to load.
explorer

Caveat emptor: I have not test this.


Edit2: This differs from Tom’s answer in that I’m talking about the Start Menu -> Startup folder.  Every user has access to his/her own Start Menu -> Startup folder.  Tom’s answer requires that you have administrator privilege.