What is the Registry?

Since version 3.1, the Windows operating system has always functioned around the registry. The registry itself is simply a database, organized into folders (known as keys), and containing strings of configuration data (known as values). Nearly every piece of software installed on modern computers stores configuration values in the registry; common examples include version numbers, paths to recently opened files, and default values for various program settings.

As a rule of thumb, if you do not have a specific reason to start up the registry editor, you should not do so. Changing registry values on a whim can be extremely dangerous to your system. An improperly configured value can quite literally turn the entire computer into a large paperweight. With this in mind, always backup your system and create a system restore point before using the registry editor.

Layout of the Registry:
At the uppermost level of the registry, there exist a handful of keys known as “root keys.” These are usually seen in all caps, and almost always begin with the letters “HK.” Let’s take a brief look at the purpose of the main root keys:

image:reg_1

HKEY_CLASSES_ROOT:
Sometimes abbreviated HKCR, this root key is responsible for OLE data as well as coordinating filename associations. For example, all .doc files automatically open in Microsoft Word because the corresponding association is present as a value under this key.

HKEY_USERS:
This root key contains application data for each user login stored on the machine. Because different programs can be installed for different users, every user account has its own separate key with its own separate set of application data.

HKEY_CURRENT_USER:
Occasionally seen as HKCU, this key is dynamically generated whenever a new user logs in. HKCU contains the same information as HKEY_USERS, but only for the user who is currently logged in. Most registry modifications are done here, specifically under the “Software” subkey, which contains the system’s specific program data.

HKEY_LOCAL_MACHINE
This key also stores some software information, but also certain hardware data. In general, this is the second place to look for a certain software value after HKEY_CURRENT_USER.

Locating the Registry Editor:
First, identify your version of Windows – the registry editor is found under different names depending on the operating system version.

Versions prior to Windows NT use “regedit.exe,” while Windows NT and Windows 2000 made matters more complicated by including both the old “regedit.exe” and the newer “regedt32.exe.” In these cases, regedt32.exe should be used instead of regedit.exe. Thankfully, on Windows XP and above, the registry editor was condensed back into a single application, once again named “regedit.exe.”

Follow the instructions specific to your version of Windows to run the registry editor.

If you are running Windows 9x (Windows 95, Windows 98, or Windows ME):
1. Open the start menu.
2. Click “Run.”
3. In the dialog box that appears, type “regedit” with no quotes.

If you are running Windows NT or Windows 2000:
1. Open the start menu.
2. Click “Run.”
3. In the dialog box that appears, type “regedt32” with no quotes.

If you are running Windows XP:
1. Open the start menu.
2. Click “Run.”
3. In the dialog box that appears, type “regedit” with no quotes.

If you are running Windows Vista or Windows 7:
1. Open the start menu.
2. Type “run” in the Start Search box and press enter.
3. In the dialog box that appears, type “regedit” with no quotes.
4. If you are asked for administrator permission, click “Continue.”

Using the Registry Editor
Once you have launched the registry editor, you will be presented with a screen similar to this one:

image:reg_2

As you can see, the registry editor consists of two main windows: the key tree on the left, and the value list on the right. Select a key from the left window, and the value list will populate with the relevant values for the selected key.

image:reg_3

Keys may also be collapsed into even further subkeys, each of which can contain its own separate values. Select a subkey, and the relevant values will appear in the right-hand window.

image:reg_4

To edit a registry value, simply select it in the right window and click “Modify…”

image:reg_5

The “Edit String” dialog box will appear. Simply change the text inside the “value data” box and click OK. That’s it! The registry value has now been changed.

image:reg_6

Again, only change the values that you understand. When dealing with binary strings or hexadecimal data, the apparent purpose is less obvious than purely textual strings. An improperly configured registry value can break an application or the entire computer.

On .reg Files
The registry can be changed in two ways: using the registry editor, as outlined above, and using a .reg file. These files are usually provided by software vendors as patches, and they simply contain instructions for the registry editor. If you have a .reg file needing installation, simply double-click it and confirm any administrator permissions asked for. The registry will be automatically updated with the information in the .reg file. If you plan on using .reg files for registry changes, be absolutely sure they come from a trustworthy source, like the original software company.

Final Notes
Many aftermarket software is available that supposedly cleans out the registry and speeds up a computer. While systems did indeed run a bit slower with a large registry in the Windows 95 days, this is no longer the case. Avoid automatic “registry cleaners” if at all possible – as it has been mentioned in this article, a single misconfigured value can ruin certain programs, or even the entire machine. Trusting these programs to determine which registry values are essential and which are garbage is like trusting a robot to perform brain surgery; it simply is not a good idea.