NAME
registry - Manipulate the Windows registry
SYNOPSIS
ppaacckkaaggee rreeqquuiirree rreeggiissttrryy 11..11 rreeggiissttrryy option keyName ?arg arg ...?DESCRIPTION
The rreeggiissttrryy package provides a general set of operations for manipu-
lating the Windows registry. The package implements the rreeggiissttrryy Tcl
command. This command is only supported on the Windows platform.Warning: this command should be used with caution as a corrupted reg-
istry can leave your system in an unusable state.KeyName is the name of a registry key. Registry keys must be one of
the following forms: \\\\hostname\\rootname\\keypath rootname\\keypath rootname Hostname specifies the name of any valid Windows host that exports itsregistry. The rootname component must be one of HHKKEEYYLLOOCCAALLMMAACCHHIINNEE,
HHKKEEYYUUSSEERRSS, HHKKEEYYCCLLAASSSSEESSRROOOOTT, HHKKEEYYCCUURRRREENNTTUUSSEERR, HHKKEEYYCCUURRRREENNTTCCOONNFFIIGG, | HHKKEEYYPPEERRFFOORRMMAANNCCEEDDAATTAA, or HHKKEEYYDDYYNNDDAATTAA. The keypath can be one or |more registry key names separated by backslash (\\) characters.
Option indicates what to do with the registry key name. Any unique
abbreviation for option is acceptable. The valid options are:rreeggiissttrryy bbrrooaaddccaasstt keyName ?-timeout millisec- |
onds? | | Sends a broadcast message to the system and running programs to | notify them of certain updates. This is necessary to propagate |changes to key registry keys like Environment. The timeout |
specifies the amount of time, in milliseconds, to wait for | applications to respond to the broadcast message. It defaults | to 3000. The following example demonstrates how to add a path | to the global Environment and notify applications of the change |without reguiring a logoff/logon step (assumes admin privi- |
leges): | set regPath {HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment}|set curPath [registry get $regPath "Path"] |
registry set $regPath "Path" "$curPath;$addPath" |
registry broadcast "Environment" |
rreeggiissttrryy ddeelleettee keyName ?valueName? If the optional valueName argument is present, the specifiedvalue under keyName will be deleted from the registry. If the
optional valueName is omitted, the specified key and any subkeysor values beneath it in the registry hierarchy will be deleted.
If the key could not be deleted then an error is generated. If the key did not exist, the command has no effect. rreeggiissttrryy ggeett keyName valueName Returns the data associated with the value valueName under the key keyName. If either the key or the value does not exist, then an error is generated. For more details on the format of the returned data, see SUPPORTED TYPES, below. rreeggiissttrryy kkeeyyss keyName ?pattern? If pattern isn't specified, returns a list of names of all the subkeys of keyName. If pattern is specified, only those names matching pattern are returned. Matching is determined using the same rules as for ssttrriinngg mmaattcchh. If the specified keyName does not exist, then an error is generated. rreeggiissttrryy sseett keyName ?valueName data ?type?? If valueName isn't specified, creates the key keyName if it doesn't already exist. If valueName is specified, creates the key keyName and value valueName if necessary. The contents of valueName are set to data with the type indicated by type. If type isn't specified, the type sszz is assumed. For more details on the data and type arguments, see SUPPORTED TYPES below. rreeggiissttrryy ttyyppee keyName valueName Returns the type of the value valueName in the key keyName. For more information on the possible types, see SUPPORTED TYPES, below. rreeggiissttrryy vvaalluueess keyName ?pattern? If pattern isn't specified, returns a list of names of all the values of keyName. If pattern is specified, only those names matching pattern are returned. Matching is determined using the same rules as for ssttrriinngg mmaattcchh. SSUUPPPPOORRTTEEDD TTYYPPEESSEach value under a key in the registry contains some data of a particu-
lar type in a type-specific representation. The rreeggiissttrryy command con-
verts between this internal representation and one that can be manipu-
lated by Tcl scripts. In most cases, the data is simply returned as a Tcl string. The type indicates the intended use for the data, but does not actually change the representation. For some types, the rreeggiissttrryy command returns the data in a different form to make it easier tomanipulate. The following types are recognized by the registry com-
mand:bbiinnaarryy The registry value contains arbitrary binary data.
The data is represented exactly in Tcl, including any embedded nulls.nnoonnee The registry value contains arbitrary binary data with
no defined type. The data is represented exactly in Tcl, including any embedded nulls.sszz The registry value contains a null-terminated string.
The data is represented in Tcl as a string.eexxppaannddsszz The registry value contains a null-terminated string
that contains unexpanded references to environment variables in the normal Windows style (for example,"%PATH%"). The data is represented in Tcl as a
string.ddwwoorrdd The registry value contains a little-endian 32-bit
number. The data is represented in Tcl as a decimal string.ddwwoorrddbbiiggeennddiiaann The registry value contains a big-endian 32-bit num-
ber. The data is represented in Tcl as a decimal string.lliinnkk The registry value contains a symbolic link. The data
is represented exactly in Tcl, including any embedded nulls.mmuullttiisszz The registry value contains an array of null-termi-
nated strings. The data is represented in Tcl as a list of strings.rreessoouurrcceelliisstt The registry value contains a device-driver resource
list. The data is represented exactly in Tcl, includ-
ing any embedded nulls. In addition to the symbolically named types listed above, unknown typesare identified using a 32-bit integer that corresponds to the type code
returned by the system interfaces. In this case, the data is repre-
sented exactly in Tcl, including any embedded nulls. PPOORRTTAABBIILLIITTYY IISSSSUUEESSThe registry command is only available on Windows.
KKEEYYWWOORRDDSSregistry
registry 1.1 registry(n)