Registry - Personal thoughts and tips
1. Registry?
Are your questions: »What the heck is Windows Registry?«, »How do I optimize Windows?«. And if the answer is yes, than you should read this article and find out some useful information and tips about this mysterious region of Microsoft Windows.
Windows Registry is a part of Windows operating system, where all settings are stored. Well not all settings I guess, but the major part of all settings of Windows and other applications are kept there. Let's say you want to change the type of Start Menu in Windows XP. You can choose between classical menu or new one that came with Windows XP. This can be done by selecting appropriate menu type from taskbar options (“clickable†method), or you can write setting from other source, which is more advanced (“non-clickable†method). Let's check the background. (Please note: Clickable and Non-clickable are my terms and read bellow how I interpret them.)
Interpretation of “clickable†method: Let’s say you are running control panel in Windows and you are changing some settings there. There is a bunch of checkboxes, radio buttons, input fields, etc, to change. These changes are usually stored in registry under specific key, value and type. This is transparent to user and he sees only the effect of specific setting. This is “clickable†method, you just change something and parameter is applied.
Interpretation of “non-clickable†method: Let’s take previous example from “clickable†method. Apply this setting from other source or program that needs more knowledge about background of registry. You are in direct »contact« with registry.
Sure, some of you might say: “these clickable and non-clickable definitions are without meaning!†I partially agree. Usually you use some sort of tool to change settings, so there is no difference between changing setting in control panel or in Registry Tweaker and this might be the reason for you to think that way. But, in my opinion, the thing is different when you use regedit or other similar program, to navigate through registry and do changes. Here you don’t see titles and descriptions of the settings as in control panel, but instead keys, values and names are shown in non-descriptive way. You’ll see what I mean bellow.
Another example or Registry setting is Start menu speed. This option is »non-clickable« only. This means that you can not change this setting by opening some menu or properties window to change it. So how can we set start menu speed? If you know the path and value that holds this setting, than you are on a good way to change it. You also need a tool or program which interacts with registry and represents registry to you in a way you understand it. The process can be called tweaking.
Definition of tweak: Tweak - To improve. To modify so it runs better, faster, and more efficiently.
2. "Hunt them"!
At this point, you may ask yourself, “How can someone find settings in registry and what they mean?†On the internet you can find hundreds of tweaks, but you can also find them yourself with some investigation. Well, in my opinion there are two ways for tweak hunt. The First way is the easy one and not so interesting for “tweak huntersâ€. Here is a quick procedure: Run Registry Monitor and change clickable settings in, let’s say, control panel. Registry Monitor will tell you what and where was written in registry during this process of changing and applying of settings. I usually use Sysinternals RegMon, you can find it here (read my tutorial about Registry Monitor). And it is free too! The second way is more advanced and time consuming. It’s the hunt for “non-clickable†settings. Example for this is “Speed of start menuâ€. By default this setting is not present in Windows Control Panel. It is hidden from user. If you take time and explore registry you can eventually find value name “MenuShowDelayâ€. But for sure this setting it’s present somewhere in Microsoft documentation or books, or elsewhere. So, if you want to find other tweaks, search documentation and explore registry, but as I said it’s time consuming. Explore the registry and search for value names; you’ll be surprised that some value names are descriptive, like “MenuShowDelayâ€. Change them; see the results (in some cases very hard to notice anything because value is wrong and no errors or noticeable differences are shown). If the value type is DWORD, there is about 80% that DWORD value 1 means that something is true and 0, that something is false. It’s time to tell a few things about regedit.
3. REGEDIT
First you need to know little program that comes with Windows. It is called Registry Editor (regedit.exe). You can run it by clicking on Start – Run. Just type in regedit and hit enter. You'll be prompted with a window like this:

On the left you can see hives:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG.
Each hive, stores settings. You can click on one to expand it. If you click on sub items to get to this picture. Click on HKEY_CURRENT_USER, then on Control Panel, Desktop. You'll see something like this:

You can quickly see how registry is organized. When you expand certain hive, you get tree structure of sub items. These so-called »sub items« are keys, imagine them as folders on your hard drive. Each key can hold values, which are stored under specific type. Basic type categories are: STRINGS, INTEGERS and BINARIES. These basic categories are then separated into more sub classes, for instance let's take a look STRINGS. Sub classes of strings are:
- REG_SZ (This group is beside REG_DWORD type the most frequent in registry. This value holds a fixed-length text string)
- REG_EXPAND_SZ (This type holds variable-length data string)
- REG_MULTI_SZ (This type holds a list of strings)
If you want to see more types and get additional information, please check this. Some types might be irrelevant, but it's good to know them all.
Registry setting is build from 5 parts. More information is available here.
- The First part is HIVE. Hives were already mentioned before (HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG)
- The Second part is KEY. Keys are organized in tree structure and can have many sub items. When we basically display keys, we see path (just like directory path).
- The Third part is VALUE NAME. This is the name of registry value.
- The Fourth part is TYPE. Each value has its registry type, some of them were already mention above.
- The Last, Fifth part is VALUE. This is the setting itself. It can hold a number, string, list of strings, binary values...
Let's gather those parameters on our example and sort them within 5 parts (look on the pic above). HIVE = HKEY_CURRENT_USER KEY = \Control Panel\Desktop VALUE NAME = MenuShowDelay TYPE = REG_SZ VALUE = 100
Now, we want to change that 100 value under MenuShowDelay. We can do it by double click on value name. Default value is 400 milliseconds (ms). Just type in 200 instead of 400 and click OK. After applying this tweak, you must reboot to see the difference. You have set menu delay from 400ms to 200ms, so the menu opens quicker. Here you go, you have changed your first registry setting!
Now imagine that you have 10 or 100 settings to change! For each setting you must navigate through registry and manually change them. Solution is Registry Tweaker. It gives you much more than quick tweak apply. Check website, for docs, updates, visit the forum for discussions.
4. End
I hope you like this article as much as I do :). I will add more things in the future and expand the text, so please come back for reviews and updates of this article.
Copyright © 2005, 2006 Miha Jakovac
