On Windows XP I use 18 programs. In startup it makes 2-3 minutes to load all of them. Anti virus, translator, unlocker, file indexer, download manager, instant messenger etc..

I need all of them and they are on Windows system tray waiting for me to use. So I can't remove one of them, because I use them frequently. 5-6 times daily.

But I don't need them in the startup. So how can I delay the loading of these programs.

For example: - Anti virus, file indexer: in the startup - Translator, download manager, unlocker: 5 minutes after startup etc.

What solutions do you recommend?

7 Answers 7


Startup Delayer does the task: http://www.r2.com.au/page/products/show/startdelay

  • Thanks. Excellent program with beautiful UI. Note that this only works for Programs that start up, not things added to shell:startup, I believe. This also needs admin rights and the program itself needs to launch at startup. Free version seems to be more than enough for me.
    – Sanoo
    Nov 6, 2016 at 11:20

Instead of the ping command that Jeffy suggested before in Windows XP/Vista/2008 I use the timeout command in a batch file.

Syntax: timeout /t seconds

@echo off

rem for 5mins delay..

timeout /t 300

rem starting delayed start programs

start cmd /C "C:\Some\Path\To\A\Program.exe"

start cmd /C "C:\Some\Path\To\A\Shortcut.lnk"

start notepad

P.S. If you don't want to see the countdown you can discard the output like so: timeout /t 300 > nul

  • 1
    It would be nice if it weren't because timeoutisn't available on Windows XP...
    – Pere
    Aug 4, 2014 at 14:03
  1. Create a batch file called "5minsdelayStart":

    @echo off
    rem sleeping for 300000 milliseconds (5 minutes)
    ping -n 1 -w 300000 -4 >NUL
    rem starting delayed start programs
    start cmd /C "C:\Some\Path\To\A\Program.exe"
    start cmd /C "C:\Some\Path\To\A\Shortcut.lnk"
  2. Replace the commands at the bottom with the stuff you want to start up after 5 minutes delay.

  3. Add this batch file to your startup folder.

Note: You might want to create a shortcut to the batch file instead, then set the launch options to start the batch file minimised. You'll have a command prompt in the background either way, but at least if it's minimised it won't be too much intrusion!

Also, if for some reason on your network actually routes to something valid then you should change that IP address to something else (that doesn't have a route).

  • I can't find anywhere in the docs what the 3rd parameter (-4) means, but it definitely does something as the command runs properly and it doesn't throws an error. Could you please give us a hint?
    – Pere
    Sep 15, 2014 at 7:54

Actually, both answers have merits. Setting a fixed time delay may not be in your best interests as needs change with time. Any set delay to initiate the rest of the load all at once might be even more inconvenient than starting them at a time you are doing the usual "Wait for Windows".

I would consider adding an argument to "continue to wait? Y/N " to the batch if you have a lot of items in it. Or you could let it be an automatic timed extension based on activity. (i.e. wait for a time of no keyboard activity to proceed). Either way, unless you do this on the whole lot (each as a separate timed action) you may find that running it all 5 minutes after you boot-up to be just as bad or even worse than running it all before you get started.

I think if these are all absolutely necessary it might be best to put them in a sequence with 1 at a time running each then checking to see if still no activity then running the next. Of course, only you know which are needed on startup. Some may not be needed at all for certain quick on/off episodes. If placed in the correct order, those would never be reached before you power down.

Another possibility is to tie the loading to the need for what is loaded. If you are not going on the Internet or using email or other “high risk” activity, you might consider not loading your AV software. Adding the command to "Run this first if not already running" to those activities could give you a significant increase in speed for local gaming or anything else that did not need to be checked and rechecked for every move. Just tie the startup to the program that needs it.

Another option to consider would be setting as many as can be done to "run as a service" as this usually seems to take less time to become active than running a normal "start the program" sequence.

FYI there is a very useful utility I have used and given to many people over the years called "StartMan" Easily found with Google and Free and I am sure there are others. It works with every version of Windows I have ever tried from Win98 to Win7. It will let you have a lot more control over your Startup programs without having to make any permanent changes to your Startup configuration and easily undo those that are not productive.


First remove them from run at startup.
Then make a batch program to run all of them.
So after your computer finish boot up, the first thing you do is run your batch program to load it all.

  • thank you but, in that situation i should run the batch file manually. which i don't prefer.
    – trante
    Jan 30, 2011 at 19:34

Windows Script can be used instead of command script. It has a Sleep() method which should be supported in Windows XP. It runs without any visible window and allows to configure visibility of executed program window- hidden, normal or minimized.

Before using Windows Script system should be checked if it is configured to execute *.vbs files.

Below is sample script which must be placed in file with "VBS" extension, for example "DelayedStart.vbs" and placed to Start Menu StartUp folder:

Set Shell = WScript.CreateObject("Wscript.Shell")

Shell.Run """C:\Program Files\Debug\MemInfo\meminfo.exe""", 2, False
Shell.Run """C:\Windows\System32\taskmgr.exe""", 2, False

rem True=wait until exits
rem Window: 0=hidden, 1=normal, 2=minimized
rem Shell.Run """notepad.exe"" ""argument with space""", 1, False
rem Shell.Run "notepad.exe """ & WScript.Arguments.Item(0) & """", 1, True

To all thoose that say "First remove them from run at startup." i must say:

Not all apps will work, some re-add them selves to registry when are run.

So deleting the start-up registry key is not a solution for not running it on next boot, unless the registry key is deleted after killing the app.

The worst case i found (scanned driver) was it launch on boot an app, such app has no GUI, but it locks it self with "system" proccess, so it can not be killed unless you kill "system" (warning doing so = BSOD), also if locks / hooks registry changes, so after deleting the key it reappears, etc. Since app can not be killed you will not be able to avoid it from running on next boot. Only SOLUTION work (without formatting): Start with a Linux and delete such app, never ever again re install it... but since it is a "driver" it gets installed again as soon as USB is up (also with device not plugged), so you need to remove all USB entries, driver, files, etc, reboot on Linux and delete the app.

I understand for "normal" apps, it is very easy... just remove the lauch registry key and put such command on a .lnk file (shortcut), then from a script run that .lnk you want doing a sleep between them... or have some on a 1 minute differ, others on a 5 minute, etc... scripting it and calling all the scripts in parallel, so each one can wait for a different time, bla bla bla...

But what to do with that ones (java Updater, etc) that readd them selves to registry as soon as they are run, or when they are closed, or worst... while they are running as soon as they detect missing key on registry, etc.

Some have the option to not auto-start, but others do not have.

For "normals" it is very good and works great... for such, let's say "ugly", ones, what can be done? Nothing, except delete the registry key after on shutdown after app has been killed / exited.

I have not see any program that let you configure kay registry keys you want to be deleted on final stage of shutdown, i see someones that do in on early stages of shutdown... but can not control that other apps are still running (can not set order of shutdown), so if some one is still running, as soon as reg key got deleted, such one running re-add it.

I got my own solution (very nasty i must admit): I lock such registry keys without admin rights, only with specific user i use rights, so that way any app (not running as system special user) runnign with admins rights, etc. can not modify it... warning with some apps they will refure to continue running when launched because they cound not change such registry key, so you must run a 4 step script to launch them... set rights to allow, run the app and wait a little, set the rights to not allow (admin) but allow specific user, delete the key (since the script rights is user rights, it will be allowed)... and when the app will again try to re-add it will not be able to, if lucky the app will not abruptly exit, else... you must let the registry there till shutdown... for such case add a schedule task to delete the registry key... remember registry keys can be also deleted by launching a .reg with instructions for that... no need to create an app to do it.

Etc., etc., i wish some freeware tool have such things implemented, but i still found no one, neither a pay one.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .