Disable Windows Startup Programs: Registry and Start Menu
Almost every time you install a piece of software, a start up entry is created in either the Registry or the Start Menu. Many people also consider Windows Services to be startup programs, but they are usually needed and there is more risk involved when disabling. I’ll leave that for another day. Back at the beginning of the computing age, say around the time when Windows 95 was released, Microsoft made a poor decision (in my opinion) to create the Windows Registry and move away from ini files (my favorite). The Registry is essentially a database of settings and pointers that are required for every Windows operating system to boot and function. If the registry becomes corrupt, you will see the famous Blue Screen of Death or Black Screen or even a Green Screen in Windows 8. If ANY part of the registry becomes corrupt, it will cause problems…plain and simple. In Unix, Linux, and Mac operating systems, there is no registry so if one file becomes corrupt, only one application may stop working instead of the entire operating system.
The registry is broken up into a few main sections (ignore the others):
HKEY_CLASSES_ROOT holds file extension associations, unique software IDs, and a bunch of other highly technical things. For the most part, ignore it.
HKEY_LOCAL_MACHINE holds machine specific settings and configurations. One of which is the startup programs. Now, think of the registry as a large system of folders that can hold many other folders. Each folder can have a bunch of attributes which are essentially the settings for the operating system.
HKEY_USERS holds the all the user specific settings and is setup very similarly to HKEY_LOCAL_MACHINE.
HKEY_CURRENT_USER holds the user specific settings and configurations for YOUR username. It also has startup programs. HKEY_CURRENT_USER is actually just a pointer to your user key which is in the HKEY_USERS section of the registry.
Let’s dive into the Registry:
- Press Windows Key + R to open up the Run window (or open Command Prompt)
- Type in: regedit -> Press Enter (you need Administrative access to view and edit the Registry)
- In the left column, navigate to: HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows -> Current Version -> Run
- You should see a bunch of values in the right column.
Let’s backup the Run key (every folder or “container” in the registry is called a Key):
- Right click on Run -> Click Export
- Name the file: LocalRun.reg (.reg will automatically be added)
- In the Export range, make sure only the Selected branch is selected
- Save it somewhere you can find it
- Now if you accidently delete any keys or values, you can easily restore the changes
Let’s restore the Run key to make sure you understand how it works. You can actually restore a registry key a few different ways:
- Double click on the LocalRun.reg file you just created -> Click Yes to add the values back to the Registry
- In the Registry Editor (regedit.exe), click File -> Import -> Navigate to the LocalRun.reg file -> Click Open
- Open up Command Prompt -> Type in: reg import LocalRun.reg -> Press Enter
Since you have a backup of your Local Run key, lets clean house. In the right column, you should see three named columns:
- Name - Must be unique to the other names in the current Key
- Type - Will be either a String, Binary, DWORD, Multi-String, or Expandable (not important for us)
- Data - Can be many different things, but for the Run key, they are all executable files that are run at start up (when the user logs into the computer)
The values will be different for many computers because everyone has different programs installed. These programs are run for EVERY user that logs onto your computer. Removing any of these will prevent them from starting up for any other user. Here comes the fun part. Chances are you don’t need 80% of the programs to start when you turn on your computer. Start by looking down the data list and delete anything that you don’t use anymore. Old tax programs, chat clients, games, AOL (I hope you’re not sill using AOL), etc. If you’re not sure what something is, copy and paste the value into Google and research. If you do a Google search and nothing comes up, it’s probably spyware so delete it to be safe. A few are probably Java, Adobe, Google - I usually remove these too because they do a version check each time you logon, slowing down everything. I would rather manually update them myself. The only ones you REALLY want to leave are: anti-virus, encryption (if installed), touchpad, wireless programs for networks and printers (which may actually not be needed), and a few others. It’s pretty much trial and error. Once you remove a bunch, restart your computer and enjoy faster startup times. By removing these, you don’t actually stop any of the programs running, you just prevent them from starting up the next time you reboot the computer.
For those running a 64 bit OS, you will have more startup entries here:
- Navigate to: HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> Microsoft -> Windows -> CurrentVersion -> Run
Remember: You have a backup so deleting a bunch of these is not a problem. Your computer will still start up again, I promise.
Once you’re done in the Local Machine key, look in the Current User key:
- Navigate to: HKEY_CURRENT_USER -> SOFTWARE -> Microsoft -> Windows -> Current Version -> Run
Make a backup of the key and call it CurrentRun.reg. This key is set up just like the LocalRun key, but they are start up programs that start up for only YOUR user account. When you’re done, restart your computer and enjoy the speed increase.
The start menu also has 2 locations with start up program shortcuts. One for all users (the equivalent to the HKEY_LOCAL_MACHINE key) and one for the current user (HKEY_CURRENT_USER). Inside these folders, you’ll see shortcuts to the actual applications.
On a Windows XP machine, the locations are:
- C:\Documents and Settings\All Users\Start Menu\All Programs\Startup
- C:\Documents and Settings(your username)\Start Menu\All Programs\Startup
On a Windows Vista/7 machine, the locations are:
- C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
- C:\Users(your username)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
The best way to back these up is to create a folder somewhere and copy all the shortcuts to the folder. Remove a bunch and reboot to see another decrease in startup times. Remember: removing or delete the keys in the registry or the shortcuts in the folders will not remove the program from your computer, it will just prevent the program from starting up every time you start up your computer.
Now, you could just have easily opened msconfig and unchecked a bunch of values, but where’s the fun in that!?