Working with Registry Entries


Chapter 2, “Getting the Most Out of the Registry,” illustrates that the registry is one of Windows XP’s most crucial data structures. However, the registry isn’t a tool wielded only by Windows XP. Most 32-bit applications make use of the registry as a place to store setup options, customization values selected by the user, and much more. Interestingly, your scripts can get in on the act as well. Not only can your scripts read the current value of any registry setting, but they can also use the registry as a storage area. This lets you keep track of user settings, recently used files, and any other configuration data that you’d like to save between sessions. This section shows you how to use the WshShell object to manipulate the registry from within your scripts.

Reading Registry Keys or Values

To read any value from the registry, use WshShell’s RegRead method:

RegRead(strName)

 strName 

The name of the registry value or key that you want to read.

If strName ends with a backslash (\), RegRead returns the default value for the key; otherwise, RegRead returns the data stored in the value. Note, too, that strName must begin with one of the following root key names:

Short Name

Long Name

HKCR

HKEY_CLASSES_ROOT

HKCU

HKEY_CURRENT_USER

HKLM

HKEY_LOCAL_MACHINE

N/A

HKEY_USERS

N/A

HKEY_CURRENT_CONFIG

The following example displays the name of the registered owner of this copy of Windows XP:

Set objWshShell = WScript.CreateObject(“WScript.Shell”) strSetting = “HKLM\SOFTWARE\Microsoft” & _ “\Windows NT\CurrentVersion\RegisteredOwner" strRegisteredUser = objWshShell.RegRead(strSetting) WScript.Echo strRegisteredUser

Storing Registry Keys or Values

To store a setting in the registry, use WshShell’s RegWrite method:

RegWrite strName, anyValue [, strType]

 strName 

The name of the registry value or key that you want to set. If strName ends with a backslash (\), RegWrite sets the default value for the key; otherwise, RegWrite sets the data for the value. strName must begin with one of the root key names detailed in the RegRead method.

 anyValue 

The value to be stored.

 strType 

The data type of the value, which must be one of the following: REG_SZ (the default), REG_EXPAND_SZ, REG_DWORD, or REG_BINARY.

The following statements create a new key named ScriptSettings in the HKEY_CURRENT_USER root:

Set objWshShell = WScript.CreateObject(“WScript.Shell”) objWshShell.RegWrite “HKCU\ScriptSettings\", ““

The following statements create a new value named NumberOfReboots in the HKCU\ScriptSettings key, and set this value to 1:

Set objWshShell = WScript.CreateObject(“WScript.Shell”) objWshShell.RegWrite “HKCU\ScriptSettings\NumberOfReboots", 1, _ “REG_DWORD”

Deleting Registry Keys or Values

If you no longer need to track a particular key or value setting, use the RegDelete method to remove the setting from the registry:

RegDelete (strName)

 strName 

The name of the registry value or key that you want to delete. If strName ends with a backslash (\), RegDelete deletes the key; otherwise, RegDelete deletes the value. strName must begin with one of the root key names detailed in the RegRead method.

To delete the NumberOfReboots value used in the previous example, you would use the following statements:

Set objWshShell = WScript.CreateObject(“WScript.Shell”) objWshShell.RegDelete “HKCU\ScriptSettings\NumberOfReboots”




Insider Power Techniques for Microsoft Windows XP
Insider Power Techniques for Microsoft Windows XP (Bpg-Other)
ISBN: 0735618968
EAN: 2147483647
Year: 2005
Pages: 126

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net