Finding your way around the Registry
Before we begin editing the Registry Editor, we'll take a look at the overall structure of the Registry and its various components. The first thing you need to know is that the Registry has many thousands of settings, organized into five main sections, called Registry hives. Each hive has a different purpose.
Following are the five hives and what each does:
- HKEY_CLASSES_ROOT: This hive tells Windows how to handle every file type and controls basic user interface options.
- HKEY_CURRENT_USER: This hive contains configuration information about the system setup of the user that is currently logged into Windows. It controls the desktop, as well as Windows' appearance and behavior. It also manages connections to networks and devices such as printers; personal preferences such as screen colors; and the user's security rights.
- HKEY_LOCAL_MACHINE: This hive contains information about the computer itself -- details about the hardware, including keyboard, printer ports, storage ... in fact, the entire hardware setup. In addition, it has information about global security, installed software, system start-up and drivers.
- HKEY_USERS: This hive contains information about every user profile on the system.
- HKEY_CURRENT_CONFIG: This hive contains information about the current hardware configuration of the system, in the same way HKEY_CURRENT_USER contains information about the current user of the system.
Understanding keys and values
Underneath each hive are keys, which can in turn contain subkeys, and those subkeys can contain subkeys, and so on, organized in directory fashion, much like a hard drive.
Keys and subkeys contain one or more values, each of which controls a particular setting in Windows. Here are the six primary types of Registry values:
String value (REG_SZ): This kind of value is easy to understand and edit because it is made up of plain text and numbers. It is one of the most common types in the Registry, and the type you're likely to edit most frequently.
For example, this value
determines the maximum number of milliseconds that can elapse between two mouse clicks for Windows to consider them a double-click (for the user currently logged into Windows).
Binary value (REG_BINARY): This value is made up of binary data: 0s and 1s. As a general rule, you won't edit binary values.
DWORD (32-bit) value (REG_DWORD): This value is represented as a number. Sometimes the value acts as a toggle -- 0 turns on the key and 1 turns off the key -- though other numbers may be used instead.
QWORD (64-bit) value (REG_QWORD): This is like a DWORD value, except that it can hold larger values.
Multistring value (REG_MULTI_SZ): This value contains several strings of plain text and numbers. The Registry Editor will let you edit these values, but it won't let you create them.
Expandable string value (REG_EXPAND_SZ): This value contains the location of files and tells Windows where to find them.