One of the things that has always annoyed me the most about Windows is the tendency of software packages to install resident applications. That is, many applications install small programs that load at boot time, and serve little, if any, purpose. Well, I have to admit, that last bit isn't entirely true. Those programs _do_ serve a purpose. Many of them exist to speed the load time of an application. Back in 1997, Microsoft's Office 97 installed a little application called osa.exe. What did it do? It consumed memory and processor cycles all the time, so that when you double-clicked on the icon for MS Word, Word would open more quickly.

What happened if you killed osa.exe? MS Word would load slightly slower. The operating system itself would finish loading slightly faster.  That's it. Other applications do similar things. Intuit's Quicken likes to install a resident program which checks for updates to itself. Realplayer makes sure to load itself at boot time. Most video cards now install a program which allows you to change your screen resolution with only a couple of right-clicks. Now, when was the last time you changed your screen resolution?

Removing these little resident programs can increase system stability and performance. It can also increase security: the more applications you have running, the better the odds that one of them has a horrendous security hole!

How does a person go about stopping these applications? Well, one can run Microsoft's msconfig program, and selectively deactivate things. That's nice in that you can click-and-drool your way through it with your mouse. This is not, however, the approach I take

First, check your startup folder for applications. Take a good look at everything in there. Adobe photoshop likes to load "Adobe Gamma blah blah blah", and MS Office likes to load the office bar (at least, my version of MS Office does). Delete or move shortcuts to applications you don't think you need. The nice thing about this phase is that you really can't hork up your system doing this: the critical system processes which need to run can't be started from the startup folder of the start menu. If you're worried that you might need one of those applications, create a disabled_startup folder under the start menu. Then, simply place the shortcuts to the applications in question in there.

The bad news, however, is that many applications insert themselves into your system startup without ever going near the start menu. They store themselves in what is known as your registry. What's the registry? It's a great big file which contains pretty much all the configuration information the MS Windows needs. If you bung it up, your system will have problems. It may not even boot. So be warned! Be careful! Go to google, and read up on the registry if it makes you feel better. If the thought of changing it panics you, call someone, like me, to come over and make the changes for you.

Assuming you're willing to mess with the registry (which isn't really as scary as it sounds), read on.

Go to the start menu and select run. Type in regedit. That'll bring up the registry editor.
Notice the hierarchical tree on the left hand side of things?

There are a handful of choices on the left. We're going to ignore most of them for now. Since we're dealing with a WindowsNT-style startup, we only really have one place to look here. I'm sure you're wondering why I say Windows NT, when you're dealing with either Windows 2000 or Windows XP. Well, it turns out that Windows 2000 is _really_ Windows NT 5.0. Windows XP is actually Windows NT 5.1. They've changed the product name, and made improvements, but under the hood, they're very similar.

Click on the + next to HKEY_LOCAL_MACHINE, so your session of regedit looks like this:

Next, continue expanding in the right place. We're eventually bound for \\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENT VERSION\RUN. Follow these pictures to get there:






Phew! That's quite a bit of clicking, isn't it? Check out the final picture--the one named "run.jpg". Notice those entries. It turns out that any entries here will be run automatically at boot time. This picture is taken from my WinXP system, and you'll notice that I've got two processes starting on boot: nwiz and NvCplDaemon. How does a person ever figure out what those are? Easy: Google.

Take a look at the actual program name, which is contained in the right-hand portion of the entry. To find out what nwiz.exe is, take that name, and plug it into a google search. Grab the page which is hosted at http://www.windowsstartup.com. Why there? Because the guy who runs it is a stand-up dude. He gives good, solid information, without blatantly trying to sell you a product. lutitilies.com has a site that lists off programs, but then it always says "you can purchase Wintasks pro to stop this process!". Some processes you wouldn't want to stop, because they're required for normal system function. The things that show up in \\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENT VERSION\RUN, however, can almost always be safely stopped. How can you be sure if what you're doing is entirely safe? I can't guarantee that it is. Use common sense.

Just to test things out, I disabled the nvidia entries in my registry. How? By exporting this key to a different file. This is done, by going to file -> export registry key to file.
Then, once I had saved those things, I deleted those two keys, by selecting them, and right-clicking, then selecting "delete". Then, I rebooted. Lo and behold, everything worked just fine.

Next, check out the HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Run registry key, as well.  It can contain additional applications started on boot.  Thanks to Annoyances.org, an excellent site for MS Windows information, for that tip :)

Changing your startup process in Windows is a lot like readjusting startup process on any OS. Make a few changes, reboot, see if everything works. If it does, then you can keep going forward with changes. If I find a problem, I can reload those deleted registry values by double-clicking on the regfile I created in the previous paragraph :)

MS Windows looks like magic, because it hides lots of things behind the scenes, but it's still an operating system. It starts programs at boot time based upon the instructions it reads from some file(s). Once you've learned about the format of the instruction file, and where it is, you can modify things to your hearts content.

Bear in mind, that other files may contain programs that are being started! \\windows\win.ini is still read on startup, and I have this suspicion that there is another place that I just haven't found yet.. A virus or worm could alter certain system programs and hide the fact that it is starting. For this reason, it is wise to occasionally look at your task list to see what programs are currently active. You can bring up the task manager by hitting ctrl-alt-delete

and selecting the processes tab

From here, you can repeat the google search trick, and track down those tasks!

Good luck on streamlining your system!

This document is copyright 2004, Jeremy Anderson. All rights reserved. http://www.angelar.com/~jeremy/computer/