Saturday, May 3, 2014

Delaying Startup Programs Until Idle on Windows 7

The other day I was starting up my computer in a rush before class. As I waited for all the "necessary" startup programs to start up, it hit me. Wouldn't it be great to be able to a prioritize the way my computer starts up? More than that though, I want to be able to tell some programs to not launch until my computer isn't being used. They can load up after I leave for class. If I need them I can just launch them manually.

A few Google searches yielded a few programs (some free some not), but I am always hesitant to hand over important things like startup procedures to an unknown program from the abyss. Then I found my answer.

Enter Window Task Scheduler. I had encountered Windows Task Scheduler before on Windows 8 but hadn't ever directly used it on Windows 7. It does exactly what I wanted! Using the task scheduler it is pretty trivial to create a task to start a program after startup and whenever the computer is idle. However, I thought I could make it easier.

I decided to create a batch file to launch my secondary programs (KeePass, iTunes updater, etc.). Then all I have to do is create one scheduled event in the task scheduler to launch the batch file. Even better, I can put the batch file somewhere convenient (the desktop, documents, etc), so it is easy to change. If you're reading this, I will assume you know how to find the startup programs you have on your computer. Make sure you don't get delay an important one.

Anyway, here is the batch file code. The best way to see what is going on is to just open a command window and type HELP START. This will give you all the commands you need. Note that if you are using a location that has spaces you will need to put it in quotes with a /D preceding it.

@ECHO OFF

START /B /D C:\Users\Matthew\AppData\Local\Google\Update\GoogleUpdate.exe
START "Startup Batch Window"  /B  /D "C:\ProgramFiles(x86)\Seagate\SeagateDashboard2.0\DBAgent.exe"
START "Startup Batch Window"  /B  /D  "C:\ProgramFiles(x86)\KeePassPasswordSafe2\KeePass.exe" 



And here are some screenshots of me making my scheduled event.
Create New Task


Adding a Trigger

Triggers for My Event

Adding Action to be Triggered - Launch Batch File


Hopefully this is useful to someone. As my Calculus II professor always said, "What is that American expression? There is more than one way to skin the cat?" If I missed a much easier, more effecient, or more logical one feel free to comment. This just seems to work for me.

-Matthew