Welcome to @!$h@s Free CodeWorld
 
 
  free books Search
Google
 
  free books Source Code
 
  free books FAQs
 
  free books Articles
 
    Personal
 
  free books Resources
 
   Windows Tips & Tricks
 
   Dot Net Section
 
   About Myself

I am a B.E in Information Technology form Lingaya's Institute of Management and Technology Faridabad, India.

I have worked on VC++, MFC, ASP, ASP.NET ,Sql Server. Currently I am working on Visual C++ and MFC.

I made a free open source firewall for windows which can be find in MYProjects section.

I am currently working in GloalLogic, Noida.

For any comments and suggestions Contact Me at :
Admin@ProgrammerWorld.NET

MySpace profile: Here

 
Registry Tips

The Registry

DEFINITION: The Windows 9x/NT/2000/ME/XP Registry 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.

It was introduced to replace the text/ASCII based MS -DOS configuration (.BAT, .SYS) and MS Windows initialization (.INI) files.

Structure of Registry in windows 9X is Different from that of Windows NT,2000 and XP.

Windows 95/98/ME :In these operating systems Registry is stored in these 5 files, with the Hidden, Read-only attributes for write-protection purposes, usually located in the %WinDir% folder (default is C:\Windows) .

  • SYSTEM.DAT = stores persistent hardware and software settings related to the system it resides on, contained in the (HKEY_CLASSES_ROOT = Windows 95 and 98 only) and HKEY_LOCAL_MACHINE Hive keys.
  • USER.DAT = stores user specific and software settings contained in the HKEY_CURRENT_USER Hive key. If more than one user, then multiple user profiles enable each user to have their own separate USER.DAT file, located in %WinDir%\Profiles\%UserName%. When a user logs on, Windows OS (down)loads both USER.DAT files: the one from the local machine %WinDir% (global user settings), and the most recent one from the local machine %WinDir%\Profiles\%UserName%, or from the central (host) server if user profiles reside on a network (local user settings).
  • CLASSES.DAT = stores persistent data contained in the HKEY_CLASSES_ROOT Hive key, found only on Windows ME.
  • SYSTEM.DA0 and USER.DA0 = automatically created backups of SYSTEM.DAT and USER.DAT from the last successful Windows GUI startup, and found only on Windows 95

Windows NT/2000/XP :Registration Database is contained in these 5 files located in the %SystemRoot%\System32\Config folder (default is C:\Winnt\System32\Config for Windows NT/2000 or C:\Windows\System32\Config for Windows XP):

  • DEFAULT = stores the HKEY_USERS\.Default key.
  • SAM = stores the HKEY_LOCAL_MACHINE\Sam key.
  • SECURITY = stores the HKEY_LOCAL_MACHINE\Security key.
  • SOFTWARE = stores the HKEY_LOCAL_MACHINE\Software key.
  • SYSTEM = stores the HKEY_LOCAL_MACHINE\System key and the HKEY_CURRENT_CONFIG Hive key,

    these files located in the %SystemRoot%\Profiles\%UserName% folder:

  • NTUSER.DAT and USRCLASS.DAT (Windows XP only) = store the HKEY_CURRENT_USER Hive key,

Editing Registry

Always make sure that you know what you are doing when changing the registry or else just one little mistake can crash the whole system. That's why it's always good to back it up!

To view the registry (or to back it up), you need to use the Registry Editor tool. There are two versions of Registry Editor:

:To modify the Registry, you need to use a Registry Editor:

  • Regedit.exe (Windows 95/98/ME/NT/2000/XP) = located in %WinBootDir% (%SystemRoot%) has the most menu items and more choices for the menu items. You can search for keys and subkeys in the registry.
  • Regedt32.exe (Windows NT/2000/XP) = located in %SystemRoot%\System32,enables you to search for strings, values, keys, and subkeys. This feature is useful if you want to find specific data.

Registry Structure

For ease of use, the Registry is divided into five separate structures that represent the Registry database in its entirety. These five groups are known as Keys, and are discussed below:

HKEY_CURRENT_USER
This registry key contains the configuration information for the user that is currently logged in. The users folders, screen colors, and control panel settings are stored here. This information is known as a User Profile.

HKEY_USERS
In windowsNT 3.5x, user profiles were stored locally (by default) in the systemroot\system32\config directory. In NT4.0, they are stored in the systemroot\profiles directory. User-Specific information is kept there, as well as common, system wide user information.

HKEY_LOCAL_MACHINE
This key contains configuration information particular to the computer. This information is stored in the systemroot\system32\config directory as persistent operating system files, with the exception of the volatile hardware key.

HKEY_CLASSES_ROOT
The information stored here is used to open the correct application when a file is opened by using Explorer and for Object Linking and Embedding. It is actually a window that reflects information from the HKEY_LOCAL_MACHINE\Software subkey.

HKEY_CURRENT_CONFIG
The information contained in this key is to configure settings such as the software and device drivers to load or the display resolution to use. This key has a software and system subkeys, which keep track of configuration information.

REG Files

.REG file, which can be in:

  • plain text/ASCII format in Windows 95/98/ME and NT/2000/XP or
  • binary format in Windows 2000/XP.

    Text .REG files can be easily viewed/created/edited by hand using any text/ASCII editor, like Notepad

Their purpose is to add, modify or delete Registry (Sub)Keys and/or Values.

Writing .Reg Files

1.) Header line: this FIRST line is mandatory. MUST contain only these exact words (case sensitive = character capitalization required!):

  • REGEDIT4 = for Windows 95/98/ME and NT 4.0 or
  • Windows Registry Editor Version 5.00 = for Windows 2000/XP.
    This is the only way Windows OS can recognize, validate and run a .REG file.

2.) Empty (blank) line: this second line is optional. Similar to inserting a carriage return (CR).

3.) Remarked (comment) line(s): optional. MUST begin with a semicolon (;) which may be followed by a space (optional). May be inserted anywhere in the .REG file, but NOT before the header, which MUST be present as FIRST line.

4.)(Sub)Key line: MUST be preceded and terminated by square parenthesis ([]). (Sub)Key name MUST start with the Hive Key name (left end) and MUST contain entire Subkey pathway leading to the current Subkey name (right end). Consecutive (Sub)Key names MUST be separated by SINGLE backslash marks (\).
(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, but NOT in Windows 95/98/ME.

5.) Value line: MUST contain these elements in this exact order:

  • Value name: MUST be preceded and terminated by quotation marks ("").
  • Equal mark (=): separates Value name from Value type.
  • Value type: MUST be specified (Dword [REG_DWORD], Binary [REG_BINARY], etc) if Value type other than String [REG_SZ].
  • Colon mark (:): MUST exist if Value type other than String.
  • Value data: MUST be in the same format as defined by Value type: text/ASCII, Unicode/ANSI, (alpha)numeric (decimal, hexadecimal or binary) etc. MUST be preceded and terminated by quotation marks ("") ONLY IF Value type is String.
    Value Data syntax
    • String Value [REG_SZ] (API Code 1):

      "ValueName"="ValueData"
      Value Data is expressed here in Unicode or ANSI formats: simple text/ASCII, expanded or extended.

    • Dword Value [REG_DWORD] (API Code 4):

      "ValueName"=ValueType:ValueData
      Value Data is expressed here in Double WORD (4 bytes = 32 bits) formats: decimal, hexadecimal or binary.

    • Large Binary (hex) Value (any Binary Value API Code):

      "ValueName"=ValueType(API Code):ValueData,ValueData,\
      ValueData,ValueData

      Large Values can span onto more than one line. Each line (except the last one) is terminated by a comma (,) followed by a SINGLE backslash mark (\). Consecutive lines are separated by carriage returns (CR).

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 (\\).

6.) Empty (blank) line: this LAST line is mandatory for proper operation. Similar to inserting a carriage return (CR) at the end of file.

This is how a generic text/ASCII .REG file looks like:


-----Begin cut ∓ paste here-----
REGEDIT4
; Comment line:
[HKEY_KEY_NAME\SubkeyName1\SubKeyName2]
; String Value format:
"ValueName"="ValueData"
; Dword or Binary Value format:
"ValueName"=ValueType:ValueData

------End cut ∓ paste here------

Example of actual .REG file:


-----Begin cut ∓ paste here-----
REGEDIT4
; First Value below displays MS Windows version:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
; String Value format:
"Version"="Windows ME"
; Dword Value format:
"CacheWriteDelay"=dword:00000320
; Binary Value format:
"OldWinVer"=hex:00

------End cut ∓ paste here------



Copyright 2012, ProgrammerWorld.NET

Comments | Suggest a Site | Contact us for Advertisement | Submit Article | Submit Source Code |
For any queries regarding this web site or to contribute to this site mail me at Admin@ProgrammerWorld.NET

Advertiser can contact us on above mentioned email address. This site get more than 60000 unique Ip hits per month.

Like this site ? Keep this site available and free by donating