Windows Registry: Difference between revisions

From Computers Wiki
Jump to navigationJump to search
(→‎Native .REG file format: Note lack of escaping)
(→‎Native .REG file format: Clarify root ntoe)
Line 34: Line 34:


*The first line is <code>REGEDIT</code> with no version afterwards. Contrast this with <code>REGEDIT4</code> and <code>Windows Registry Editor Version 5.00</code> present in later versions.
*The first line is <code>REGEDIT</code> with no version afterwards. Contrast this with <code>REGEDIT4</code> and <code>Windows Registry Editor Version 5.00</code> present in later versions.
*<code>HKEY_CLASSES_ROOT</code> is explicitly prepended to every key. Contrast this with <code>REGEDIT.EXE /V</code> strongly implying that the root is that itself.
*<code>HKEY_CLASSES_ROOT</code> is explicitly prepended to every key. Contrast this with <code>REGEDIT.EXE /V</code> strongly implying that the root is <code>\</code> instead.
*Every processed line has the format <code>HKEY_CLASSES_ROOT\path\to\key = Value of key</code>.
*Every processed line has the format <code>HKEY_CLASSES_ROOT\path\to\key = Value of key</code>.
*Lines that do not start with <code>HKEY_CLASSES_ROOT</code> are ignored; no special character is needed to start a comment.<ref><code>%WINDIR%\SYSTEM\SETUP.REG</code> line 4</ref>
*Lines that do not start with <code>HKEY_CLASSES_ROOT</code> are ignored; no special character is needed to start a comment.<ref><code>%WINDIR%\SYSTEM\SETUP.REG</code> line 4</ref>

Revision as of 05:07, 30 October 2023

The Windows Registry is a unnecessarily nested key-value store.

Windows for Workgroups 3.11

The following things were noticed after installing the 16-bit version of Internet Explorer 5.01.

REGEDIT.EXE

This one is bundled with the operating system. Run it with the /v flag to make it actually usable.

  • It only sees the type registrations (HKEY_CLASSES_ROOT in REGEDT16.EXE).
  • In verbose mode, spaces in keys are replaced with #.
  • There is only one value per key ((Default) in REGEDT16.EXE), and it is always a string.
  • A "Revert to Last Save" menu item exists.
  • Data is stored in %WINDIR%\REG.DAT.[1]
  • Separate REGEDIT.HLP and REGEDITV.HLP files exist. The latter is used for the Help menu when running in verbose mode.
  • Verbose mode takes significantly longer to start than standard mode.

REGEDT16.EXE

This one comes with the 16-bit version of Internet Explorer 5.01.

  • This gets dumped into %WINDIR%\SYSTEM unlike the native REGEDIT.EXE
  • The About dialog states this is for both Windows 3.1 and Windows NT 3.51.
  • HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE are present too.
  • String, Binary, and DWORD are the only types.
  • Data is stored in %WINDIR%\REG16X2.DAT.[2]
  • REG16X2.Enn for 00-99 are created next to the file for each installation and uninstallation attempt.
  • The program starts significantly more quickly than REGEDIT.EXE /V.

Native .REG file format

This section details the native format understood by Windows 3.1. 16-bit Internet Explorer 5.01 and the like instead use the newer REGEDIT4 format.

  • The first line is REGEDIT with no version afterwards. Contrast this with REGEDIT4 and Windows Registry Editor Version 5.00 present in later versions.
  • HKEY_CLASSES_ROOT is explicitly prepended to every key. Contrast this with REGEDIT.EXE /V strongly implying that the root is \ instead.
  • Every processed line has the format HKEY_CLASSES_ROOT\path\to\key = Value of key.
  • Lines that do not start with HKEY_CLASSES_ROOT are ignored; no special character is needed to start a comment.[3]
  • If the  =  and value are omitted, the key is created without a value.
  • Escape sequences are not understood.

KB articles

References