Reader to Reader: Workaround for New Default Behavior in Win2K’s Regedit

In Windows 2000, regedit has a new default behavior: It opens from the last key or subkey you had open in the previous session. As a result, the Registry Editor window can take a long time to appear. Here’s how to circumvent this default behavior.

Dino Esposito

May 20, 2001

2 Min Read
ITPro Today logo in a gray background | ITPro Today


[Editor's Note: Email your scripting solutions (400 words or less) to Reader to Reader at [email protected]. Please include your script and phone number. We edit submissions for style, grammar, and length. If we print your contribution, you receive $100.]

In Windows 2000, regedit opens from the last subkey you had opened in the previous session. Many people might find this new default behavior annoying because this process can take a while to finish, especially if your last subkey was deep (i.e., three or more levels) within the registry. The registry editor's UI doesn't provide a way to disable this default behavior, but I've developed a workaround.

Regedit maintains the last opened key under the HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionAppletsRegeditLastKey subkey. Every time you exit the registry editor, the system automatically updates this subkey. Although you can change this default behavior by disabling write permissions for the LastKey subkey, you can change permissions only in regedt32. Thus, you would have to always use the more specialized regedt32 and not the simpler regedit to work in the registry.

A better solution is to use the workaround code in Listing 1. As callout A in Listing 1 shows, the workaround uses the WshShell object's RegWrite method to set regedit's LastKey subkey value to an empty string. Then, the workaround launches regedit. When the registry editor starts up, it looks in the LastKey subkey and finds an empty value, which prompts it to use the registry's root path. Thus, regedit opens with the main window displayed.

The code works with any version of Windows Script Host (WSH) on your Win2K machine. (The code won't work on a Windows NT machine because only Win2K's regedit supports LastKey.) To use the workaround, save the code in Listing 1 in a .vbs file (e.g., RunRegedit.vbs) and place the file on your desktop. When you want to launch regedit, just double-click it instead of the regular regedit desktop icon that you might have. If you routinely work in a specific subtree or key, you can replace the empty string ("") in the code at callout A with that subtree's path (e.g., "HKLMSOFTWARE"). That way, when you click the .vbs file on your desktop, the registry editor opens, displaying the subtree in which you want to work, but won't take a long time to open.

—Dino Esposito
[email protected]

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like