I will post here ALL New Registry HACKs [in chronological order] every time I'll also add them to REGISTRY.TXT, TIPSXP.TXT, TIPSME.TXT, TIPS2000.TXT, TIPS98.TXT, TIPSNT4.TXT, OSR2TIPS.TXT or AOLTIPS.TXT, all part of my Updated Windows 9x/NT4/2000/ME/XP/2003 + DOS 7.xx/8.00 ©Tricks + Secrets Files [W95-11D.EXE], FREEware.
Contents:
The Registry
DEFINITION: The Windows
95/98/NT/2000/ME/XP/2003 Registry (also called Registration Database) is a
complex, unified, system wide, continually referenced during operation database, used for centrally storing, locating,
editing and administering system, hardware, software and user configuration information, following a hierarchical
structure.
Its role is to replace the text/ASCII based MS-DOS configuration (.BAT, .SYS) and Windows initialization
(.INI) files, used by the old MS-DOS 3/4/5/6.xx, Windows 3.xx and Windows for WorkGroups 3.1x (REG.DAT)
releases.
Most data from the MS-DOS startup configuration files: AUTOEXEC.BAT and CONFIG.SYS, and from the Windows system initialization files: CONTROL.INI, SYSTEM.INI, WIN.INI, PROTOCOL.INI, NETWORK.INI etc, is now
contained into the Registry, together with most of the other system settings. Most Win32 (32-bit) and Win64 (64-bit) specific
applications store their initialization and configuration data into the Registry instead of into .INI, .CFG etc files. The
MS-DOS and .INI files are kept only for backward compatibility with older MS-DOS and Win16 (16-bit) based programs.
The
Registry is stored in binary data format (.DAT), and the information it contains can be
accessed (read from/written to) at any time during operation by any Registry aware Windows programs, as needed.
More info @ Microsoft:
The Windows 95/98/ME Registration Database is contained in these 5 files, with the Hidden, Read-only attributes for write-protection purposes, usually located in the %WinDir% folder (default is C:\Windows) in stand-alone single-user environments:
This other file is specific only to Windows 95/98/ME and resides usually on the central (host) server in multi-user environments/networks or in %WinDir% on stand-alone multi-user machines:
In
Windows 95 retail, 95a OSR1, 95B OSR 2.0, 95B OSR 2.1 and 95C OSR 2.5 the HKEY_LOCAL_MACHINE and HKEY_USERS Registry Hive
keys can be backed up manually by using the Configuration Backup tool (Cfgback.exe) found on the Windows Setup CD-ROM
in the \Other\Misc\Cfgback subfolder, and also part of Microsoft Windows 95 CD-ROM Extras:
Get CFGBACK.EXE [46 KB, free,
unsupported].On computers with more than one user only HKEY_LOCAL_MACHINE is backed up.
More info.
CfgBack can create up to 9 different compressed Registry
backup copies with the .RBK extension. Registry BacKup files (.RBK) must reside in %WinDir%,
and can be used exclusively by CfgBack to restore an older set of working Registry Hive keys.
See "REGISTRY BACKUP + RESTORE" to learn how to backup/restore your entire Registry
safely.
MSKB: Confirmed CfgBack BUGs:
In Windows 98, 98 SE(U) and ME working Registry files (.DAT) are backed up automatically upon loading
Windows by the Scan Registry tool (%WinDir%\Scanregw.exe) into compressed Cabinet files (.CAB = Microsoft proprietary compression technology) found in the %WinDir%\Sysbckup subfolder
(default), and holding 5 (default), up to a maximum of 99 different backup copies, a new one being created upon the first
successful GUI boot of each new day (the oldest is replaced with the newest). They are named from: RB000.CAB, RB001.CAB, ... up to RB099.CAB. Check their date/time stamp to determine the newest
backup set.
Windows 98/ME automatic Registry backup is enabled by this command:
C:\Windows\Scanregw.exe /autorun
found as a String Value called "ScanRegistry" under this Registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
See "SCANREGW, SCANREG + SCANREG.INI" for more details.
The Windows NT/2000/XP/2003 Registration Database is contained in these 6 files located in the %SystemRoot%\System32\Config folder (default is C:\Winnt\System32\Config for Windows NT or C:\Windows\System32\Config for Windows 2000/XP/2003):
these 2 files located in the %SystemRoot%\Profiles\%UserName% folder:
and their automatically created backups from the last known good booting process (successful startup):
This other file is specific only to Windows NT4/2000/XP/2003 and resides usually on the central (host) server in multi-user environments/networks or in %SystemRoot%\Inf on stand-alone multi-user machines:
In Windows NT 4.0, 2000, XP and 2003 the Registry Hive keys can be backed up or restored
manually by using the command line Registry Console tool (Reg.exe) located in %SystemRoot%\System32, also part of Microsoft Windows NT4/2000/XP/2003
Resource Kits (RK).
More info.
MSKB:
How To Backup, Edit and Restore the Registry in:
The Registry consists of 2 basic components (elements):
Value Type defines Value Data, displayed in multiple alphanumeric formats.
This is how they appear in the Registry Editor:

| (1) Main Heading [Tree] (2) Hive [Root] Key (3) Sub [Child] Key | (4) Value Name (5) Value Data (6) Value Type | |||
This is the complete list of supported 32-bit Windows (Win32) OS (x86) Registry Value types:
|
|---|
Unfortunately most Registry elements have fixed limits:
|
|---|
Values larger than 2,048 Bytes [2 KB] should be stored as separate
files, and their file names stated in the Registry, for optimal efficiency.
More info @ MSDN.
Do NOT confuse this
with the "RegistrySizeLimit" (RSL) Registry DWORD [REG_DWORD] Value used to configure paged database memory pools in
Windows NT4/2000, and subsequently removed from Windows XP/2003.
More info.
When you run the Registry Editor (see further below), you'll see the following
expandable Registry subtrees, each marked with a plus [+] sign, under the "My Computer"
heading (main tree).
To further expand each subtree and view all underlying branches (subkeys), click on the plus
[+] signs of the 6 main Hive Keys (HKEY) below.
(Sub)key/(sub)tree/(sub)heading are used here as synonyms.
This
layout is a typical example of Windows 95/98/ME Registry:
[+] My Computer
|
|--[+] HKEY_CLASSES_ROOT (HKCR): Software settings, DDE, OLE,
| drag-and-drop, Win31 backward compatibility, shortcut
| settings and subkeys for every defined file association,
| also found at HKEY_LOCAL_MACHINE\Software\Classes .
|
|--[+] HKEY_CURRENT_USER (HKCU): Currently logged on user
| | configuration settings, also found at HKEY_USERS\Username .
| | Subkeys:
| |
| |--[+] AppEvents: Assigned system and applications sound events
| | settings.
| |
| |--[+] Control Panel: Control Panel settings, similar to those
| | defined in SYSTEM.INI, WIN.INI and CONTROL.INI in
| | Windows/WfWG 3.xx.
| |
| |--[+] Identitites: Created and used by MS Outlook Express 4/5/6
| | and its Address Book. [Thank you Ojatex!]
| |
| |--[+] InstallLocationsMRU (Most Recently Used): Installation and
| | Startup folders paths.
| |
| |--[+] Keyboard: Current keyboard layout.
| |
| |--[+] Network: Network connection settings.
| |
| |--[+] RemoteAccess: Current logon location settings if using
| | Dial-Up Networking (DUN).
| |
| *--[+] Software: Software configuration settings for the currently
| logged on user, sorted by developer/manufacturer/vendor.
|
|--[+] HKEY_LOCAL_MACHINE (HKLM): User independent hardware and
| | software machine specific information: bus type, device drivers,
| | keyboard layout etc. Subkeys:
| |
| |--[+] Config: System and software configuration.
| |
| |--[+] Drivers: Used by the Device Manager to keep track of active
| | loaded drivers for hardware peripherals: PnP devices, PC
| | cards, PCMCIA etc. [Thank you Ojatex!]
| |
| |--[+] Enum: Hardware devices information and settings.
| |
| |--[+] Hardware: Serial communication port(s) information and
| | settings.
| |
| |--[+] Network: Information and settings about network(s) the user
| | is currently logged on to.
| |
| |--[+] Security: Network security information and settings.
| |
| |--[+] Software: Software specific information and settings sorted
| | by developer/manufacturer/vendor, each stored under its own,
| | separate Subkey.
| |
| *--[+] System: System startup, device drivers and operating system
| information and settings.
|
|--[+] HKEY_USERS (HKU): Information about Desktop and user specific
| settings for each user who logs on to the same Windows 95/98/ME
| system. Each user has a separate subkey here. If there is only
| one user, the only subkey is .Default .
|
|--[+] HKEY_CURRENT_CONFIG (HKCC): Information about current hardware
| profile used by the local computer at startup, pointing to
| HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current .
|
*--[+] HKEY_DYN_DATA (HKDD): Virtual key (exists only in memory)
| created every time Windows 95/98/ME initializes: dynamic
| configuration data about installed PnP devices. Changes constantly
| when hardware devices are added, swapped or removed on-the-fly.
|
|--[+] Config Manager: Hardware problem codes and status.
|
*--[+] PerfStats: System and network performance statistics. |
These 6 Hive Keys (HK) are interrelated: the information contained in HKEY_LOCAL_MACHINE (HKLM) and HKEY_USERS (HKU) (the only 2 "real" keys) appears also in 3 other Hive Keys (also called "alias" keys):
|
|---|
The 3 "alias" keys are the Registry equivalent of Windows
shortcuts ("pointers"), and their contents derives from the 4 "real" Hive Keys. Any data written to the "real" keys is also
automatically registered ("cloned") into the correspondent "alias" keys, but not the other way around.
Any data contained
in HKEY_CURRENT_USER (HKCU) overrides any data contained in HKEY_LOCAL_MACHINE (HKLM), therefore any change in
HKEY_CLASSES_ROOT (HKCR) is always "cloned" into HKEY_CURRENT_USER (HKCU).
Exception makes HKEY_DYN_DATA (HKDD) ("virtual"
key) [Windows 95/98/ME only], which is automatically created during every Windows initialization phase, exists only in the
computer's memory, and is automatically erased upon system shutdown.
Windows
95/98/ME/NT/2000/XP/2003 use dedicated files in different (mostly plain text/ASCII) formats: .HTA (HyperText Application),
.INF (INFormation), .REG (REGistration), .VBS (Visual Basic Script) etc, to import (insert,
merge) and export (save) information into and from the Registry.
Exception: Windows 2000 can import ONLY
binary (Unicode) .REG files.
Their purpose is to add, modify or delete Registry (Sub)Keys and/or Values.
See "DELETE REGISTRY KEY/VALUE" to learn how to delete Registry (Sub)Keys and Values in Windows
95B/95C OSR 2.x, 98, 98 SP1, 98 SE(U), ME, 2000, XP and 2003.
More info @ MSKB.
This can be achieved by running them directly from the Start ->
Run... box, Windows Explorer (%windir%\Explorer.exe), File Manager (FM = %windir%\WINFILE.EXE) or native/real/true/pure
MS-DOS prompt in Windows 95/98/ME (using %winbootdir%\REGEDIT.EXE command line switches = see further
below).
This is possible because in all Windows 32/64-bit (Win32/64) OSes REG files are associated by default with
the Registry Editor (Regedit.exe) executable, which resides in the main Windows folder (%windir%), listed on the
system path.
We will discuss here the most well known and easy to create/modify/use, the "all mighty" .REG file, which can be in:
Text/ASCII .REG file structure:
[HKEY_KEY_NAME\SubKeyName0\SubKeyName1\SubKeyName2\etc...]
Example:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
(Sub)Key names not present in the Registry will be automatically created when the REG file is merged into the Registry. Exception: new Hive (Root) Keys can be created ONLY in Windows NT4/2000/XP/2003, but NOT in Windows 95/98/ME.
"ValueName"="ValueData"
Value Data is expressed here in Unicode or ANSI formats: simple text/ASCII, expanded or extended.
"ValueName"=ValueType:ValueData
Value Data is expressed here in Double WORD (4 bytes = 32 bits) formats: decimal, hexadecimal or binary.
"ValueName"=ValueType(API Code #):ValueData
Large Value Data Strings can span onto more than one line, in which case each line (except the last one) is terminated by a comma (,) followed by a SINGLE backslash mark (\) and consecutive lines are separated by carriage returns (CR):
"ValueName"=ValueType(API Code
#):ValueData,ValueData,\
ValueData,ValueData
Value Data is expressed here in numeric: binary or hexadecimal, or
multi-string (complex) formats: binary, hexadecimal, Unicode or ANSI.
Consecutive bit pairs (double digits) of data MUST
be separated by a comma (,).
Separators and delimiters used in REG files on path name lines to separate drive
letters, directory (folder) names and file names, or used on command line parameters lines etc... MUST be typed as DOUBLE
backslash marks (\\).
Here the first backslash (treated by the Registry as Escape character) is used to tag
("mark") the next character, the second backslash in this case. Regedit interprets in fact these two backslashes as a single
one, and only the second backslash is processed as such. The first one is ignored.
Exception: Registry (Sub)Key
path names used in REG files MUST be separated by SINGLE backslash marks (\).
When the REG file is merged into the
Registry (Sub)Keys and Value names not present in the Registry will be automatically created. (Sub)Keys and Value names
already present under the same Registry (sub)key(s) but containing different Value type(s) and/or data will be automatically
updated to match the one(s) in the REG file.
This is how a generic text/ASCII .REG file looks like:
-----Begin cut & paste here----- ; This is a comment
line.
REGEDIT4
[HKEY_KEY_NAME\SubKeyName0\SubKeyName1\SubKeyName2\etc...]
; String Value:
"ValueName"="ValueData"
; DWORD
or Binary Value:
"ValueName"=ValueType:ValueData
------End cut & paste here------
... And this is an example of actual text .REG file containing real Keys and Values:
-----Begin cut & paste here----- ; First Value below identifies MS
Windows OS name:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
; String Value:
"Version"="Windows
ME"
; DWORD Value:
"CacheWriteDelay"=dword:00000320
; Binary Value:
"OldWinVer"=hex:00,02
------End cut & paste here------
FYI: Cut & paste lines are not part of the .REG files, of course. ;)
Registry Inconsistencies, Curiosities + Oddities
Thank you Sergio!
Except for the "ACP"="1251" String Value [REG_SZ] below, all these are
fictional examples. Merging these REG files into your Registry will achieve nothing. ;)
"Various REG_* Value types
can be expressed in REG scripts this way:
-----Begin cut & paste here-----
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\ 5]
; Name only: useful for flag values such as
AlwaysShowExt [colon required].
"0 REG_NONE"=hex(0):
; These strings are Unicode (probably UTF-16).
"1
REG_SZ"=hex(1):48,00,65,00,6c,00,6c,00,6f,00,2c,00,20,00,\
57,00,6f,00,72,00,6c,00,64,00,21,00,00
"2
REG_EXPAND_SZ"=hex(2):25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,\
46,00,69,00,6c,00,65,00,73,00,25,00,00,00
"3
REG_BINARY"=hex(3):46,72,65,65,20,66,6f,72,6d,20,62,69,6e,61,72,79
"4 REG_DWORD_LITTLE_ENDIAN"=hex(4):12,34,56,78
"5
REG_DWORD_BIG_ENDIAN"=hex(5):12,34,56,78
"7
REG_MULTI_SZ"=hex(7):4c,00,69,00,6e,00,65,00,20,00,31,00,00,00,\
4c,00,69,00,6e,00,65,00,20,00,32,00,00,00,\
4c,00,69,00,6e,00,65,00,20,00,33,00,00,00,\
4c,00,69,00,6e,00,65,00,20,00,34,00,00,00,\
00,00
;
Windows XP RegEdit silently imports this registry value type, but does not
; recognize nor display it properly. Probably
Windows XP 64-bit edition does.
"b REG_QWORD_LITTLE_ENDIAN"=hex(11):12,34,56,78,9a,bc,de,f0
; So it does with this
weird line.
"f REG_REDMOND_ONE_MICROSOFT_WAY"=hex(15):aa,bb,cc,dd,ee,ff
------End cut & paste here------
Some inconsistencies exist between string representation in different versions of REG scripts (5.0 and 4), as following example shows:
-----Begin cut & paste here-----
REGEDIT4
[HKEY_CURRENT_USER\ 4]
; Only this string is Unicode for REGEDIT4 script, the rest are ANSI.
;
Probably RegEdit handles REG_SZ differently, even in this form.
"1
REG_SZ"=hex(1):48,00,65,00,6c,00,6c,00,6f,00,2c,00,20,00,\
57,00,6f,00,72,00,6c,00,64,00,21,00,00,00
"2
REG_EXPAND_SZ"=hex(2):25,50,72,6f,67,72,61,6d,\
46,69,6c,65,73,25,00
"7
REG_MULTI_SZ"=hex(7):4c,69,6e,65,20,31,00,\
4c,69,6e,65,20,32,00,\
4c,69,6e,65,20,33,00,\
4c,69,6e,65,20,34,00,\
00
------End cut & paste here------
Windows 95/98/ME RegEdit will expect:
"1 REG_SZ"=hex(1):48,65,6c,6c,6f,2c,20,57,6f,72,6c,64,21,00
Windows XP RegEdit exports REGEDIT4 scripts as text files encoded in current ANSI codepage (example):
-----Begin cut & paste here-----
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage]
"ACP"="1251"
------End cut & paste here------
so localized value names and data should comply with it. But nothing will stop you from creating REGEDIT4 scripts as Unicode (as far as I know, only low-endian UTF-16 encoded text files with byte order mark FF FE are recognized) or Windows Registry Editor Version 5.00 scripts as ANSI encoded text files.
Windows 98 SE RegEdit (the DOS part of dual REGEDIT.EXE) imports REG_SZ value data verbatim, no translation done, so to be compatible, REGEDIT4 scripts should be properly encoded.
It appears that RegEdit simply parses scripts ignoring white space for value name (quoted string before equal sign), value type and value data [in generic form hex(#):b1,b2,b3... with #==3 if omitted together with both parentheses, or specific "string" for hex(1), dword:12345678 for hex(4)], then submit them along with data size to RegSetValueEx() Win32 API function, which in turn simply posts it to the Registry. You can make a value of type REG_NONE with arbitrary data, confuse RegEdit with non-four-byte REG_DWORD, explore and exploit buffer overflows with null-unterminated REG*_SZ values etc. ;-)"
To modify the Registry, you need to use a Registry Editor:
Microsoft Windows 95/98/NT4/2000/ME/XP/2003 Registry Editor is a tool used to display, search, modify, create, delete, save, import and export Windows Registry (Sub)Keys and Values.
Windows NT4/2000 RegEdit.exe versus RegEdt32.exe side by side comparison:
| ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows 95/98/ME do not include nor support RegEdt32.exe.
In
Windows XP/2003 RegEdt32.exe is just a "stub" that actually starts RegEdit.exe.
More info @ MSKB.
You can use either RegEdit's (Windows 95/98/ME/NT/2000/XP/2003) or
RegEdt32's (Windows NT/2000) interface (see above) in protected mode Windows environment from within Windows
GUI, or REGEDIT's DOS based (Windows 95/98/ME) command line parameters in native/real/true/pure mode MS-DOS from outside Windows.
To
learn how to use the REGEDIT.EXE available DOS mode switches, run:
|
|---|
from
native MS-DOS.
More info @ MSKB.
RegEdit is NOT installed as a Start Menu shortcut!
To create a RegEdit shortcut: right-click on an
empty raised Taskbar spot -> select Properties -> click Start Menu Programs tab -> click the Add
button -> browse to your main Windows folder -> (double)-click on Regedit.exe -> click the Next button
-> (double)-click: Start Menu -> Programs -> Accessories -> System Tools -> click the Next button -> in the
Select name for the shortcut box type Registry Editor -> click the Finish button.
If you are NOT
familiar/comfortable "messing" with your Registry, do NOT attempt to make ANY changes!
But let's presume you ARE familiar
enough with your Registry's "innards", and would like to tweak it for MAXimum performance, stability, security etc. After all
this is *THE* purpose of this "dissertation". :) So keep reading...
If you don't like to modify your Registry directly, there is an "easier" [:-)] alternative: use one of these "FREE WINDOWS 9x/NT/2000/ME/XP/2003/Vista SYSTEM + REGISTRY TWEAKERS". My favorite is X-Setup Pro 6.6 (freeware for personal use), the BEST Windows 9x/NT/2000/ME/XP/2003 Registry "hacker", capable of tweaking 1600+ Registry, System, Software, User, Network etc settings.
Or better, "hack" the Registry yourself... like I do. ;-)
In the following Registry HACKs, the subkeys/pathways in the Registry Editor left hand pane point to a specific Subkey or Value located in the Registry right hand pane, with complete explanations of what they do, and how/why you may want to modify/rename/delete them and/or add new ones to customize/speed-up/fix your Windows computer.
WARNING: FIRST BACKUP ALL YOUR HARD DRIVES TO A SAFE LOCATION BEFORE
ATTEMPTING TO MAKE ANY SYSTEM CHANGES!
*READ* "REGISTRY BACKUP + RESTORE" for
DETAILS!
Take EXTREME CAUTION when modifying your System/Startup settings! Faulty changes may
result in crashes/lockups/permanent data loss, or might lead to having you REINSTALL your Operating System(s)!
YOU are the
ONLY one responsible for ANY changes YOU make!
ALWAYS HAVE YOUR MOST RECENT SYSTEM BACKUP
READY!
NOTE: These hacks have been tried by others (and most by me), but with NO guarantee they will also work for YOU!
BEWARE: Whenever using RegEdit or RegEdt32 to MODIFY your Registry in ANY way, ALL CHANGES TAKE PLACE INSTANTLY, WITHOUT ANY CONFIRMATION!
To learn about
Registry editing, run Regedit.exe (or Regedt32.exe) and click on Help.
To learn MORE about the Registry,
(double)-click on the Windows 95/98 Resource Kit (RK) Help file, found on your Windows 9x Setup CD-ROM:
I also
recommend to check frequently the MicroSoft Knowledge Base
(MSKB), for detailed info, updates, patches + bug fixes related to your Windows OS + MS applications/games.
See
"MICROSOFT KNOWLEDGE BASE MADE EASY" for MSKB access details.
MicroSoft Developer Network (MSDN) and Microsoft TechNet post periodically detailed info about the Registry for the more technically inclined [read "geeks" ;)].
As far as I'm aware, this is 1 of the most
comprehensive Windows 95/98/NT4/2000/ME/XP/2003/IE/OE/AOL/Netscape/etc Registry HACKs, Tweaks, Secrets, Speed-Ups,
Workarounds + Fixes databases on the Internet. Some of the following tips I stumbled upon while browsing the Internet, some
have been kindly sent by concerned readers (all authors/contributors are acknowledged and reliable sources given proper
credit), and some I discovered on my own (clearly marked) while "messing" with the Registry.
Enjoy the ride!
NOTE: Contributed tips (clearly marked) posted here do not necessarily reflect the opinion of the owner of this web site.
Please send me your comments, corrections, tips.
The Registry on the Internet: