registry.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:7k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1997 Sun Microsystems, Inc.
  3. '" Copyright (c) 2002 ActiveState Corporation.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '"
  8. '" RCS: @(#) $Id: registry.n,v 1.8.2.2 2004/11/12 09:02:30 das Exp $
  9. '" 
  10. .so man.macros
  11. .TH registry n 1.1 registry "Tcl Bundled Packages"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. registry - Manipulate the Windows registry
  16. .SH SYNOPSIS
  17. .sp
  18. fBpackage require registry 1.1fR
  19. .sp
  20. fBregistry fIoptionfR fIkeyNamefR ?fIarg arg ...fR?
  21. .BE
  22. .SH DESCRIPTION
  23. .PP
  24. The fBregistryfR package provides a general set of operations for
  25. manipulating the Windows registry.  The package implements the
  26. fBregistryfR Tcl command.  This command is only supported on the
  27. Windows platform.  Warning: this command should be used with caution
  28. as a corrupted registry can leave your system in an unusable state.
  29. .PP
  30. fIKeyNamefR is the name of a registry key.  Registry keys must be
  31. one of the following forms:
  32. .IP
  33. fBeefIhostnamefBefIrootnamefBefIkeypathfR
  34. .IP
  35. fIrootnamefBefIkeypathfR
  36. .IP
  37. fIrootnamefR
  38. .PP
  39. fIHostnamefR specifies the name of any valid Windows
  40. host that exports its registry.  The fIrootnamefR component must be
  41. one of fBHKEY_LOCAL_MACHINEfR, fBHKEY_USERSfR,
  42. .VS
  43. fBHKEY_CLASSES_ROOTfR, fBHKEY_CURRENT_USERfR,
  44. fBHKEY_CURRENT_CONFIGfR, fBHKEY_PERFORMANCE_DATAfR, or
  45. fBHKEY_DYN_DATAfR.  The fIkeypathfR can be one or more
  46. .VE
  47. registry key names separated by backslash (fBefR) characters.
  48. .PP
  49. fIOptionfR indicates what to do with the registry key name.  Any
  50. unique abbreviation for fIoptionfR is acceptable.  The valid options
  51. are:
  52. .VS 8.4
  53. .TP
  54. fBregistry broadcast fIkeyNamefR ?fI-timeout millisecondsfR?
  55. .
  56. Sends a broadcast message to the system and running programs to notify them
  57. of certain updates.  This is necessary to propagate changes to key registry
  58. keys like Environment.  The timeout specifies the amount of time, in
  59. milliseconds, to wait for applications to respond to the broadcast message.
  60. It defaults to 3000.  The following example demonstrates how to add a path
  61. to the global Environment and notify applications of the change without
  62. requiring a logoff/logon step (assumes admin privileges):
  63. .CS
  64. set regPath {HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment}
  65. set curPath [registry get $regPath "Path"]
  66. registry set $regPath "Path" "$curPath;$addPath"
  67. registry broadcast "Environment"
  68. .CE
  69. .VE 8.4
  70. .TP
  71. fBregistry delete fIkeyNamefR ?fIvalueNamefR?
  72. .
  73. If the optional fIvalueNamefR argument is present, the specified
  74. value under fIkeyNamefR will be deleted from the registry.  If the
  75. optional fIvalueNamefR is omitted, the specified key and any subkeys
  76. or values beneath it in the registry hierarchy will be deleted.  If
  77. the key could not be deleted then an error is generated.  If the key
  78. did not exist, the command has no effect.
  79. .TP
  80. fBregistry get fIkeyName valueNamefR
  81. .
  82. Returns the data associated with the value fIvalueNamefR under the key
  83. fIkeyNamefR.  If either the key or the value does not exist, then an
  84. error is generated.  For more details on the format of the returned
  85. data, see SUPPORTED TYPES, below.
  86. .TP
  87. fBregistry keys fIkeyNamefR ?fIpatternfR?
  88. .
  89. If fIpatternfR isn't specified, returns a list of names of all the
  90. subkeys of fIkeyNamefR.  If fIpatternfR is specified, only those
  91. names matching fIpatternfR are returned.  Matching is determined
  92. using the same rules as for fBstringfR fBmatchfR.  If the
  93. specified fIkeyNamefR does not exist, then an error is generated.
  94. .TP
  95. fBregistry set fIkeyNamefR ?fIvalueName data fR?fItypefR??
  96. .
  97. If fIvalueNamefR isn't specified, creates the key fIkeyNamefR if
  98. it doesn't already exist.  If fIvalueNamefR is specified, creates
  99. the key fIkeyNamefR and value fIvalueNamefR if necessary.  The
  100. contents of fIvalueNamefR are set to fIdatafR with the type
  101. indicated by fItypefR.  If fItypefR isn't specified, the type
  102. fBszfR is assumed.  For more details on the data and type arguments,
  103. see SUPPORTED TYPES below.
  104. .TP
  105. fBregistry type fIkeyName valueNamefR
  106. .
  107. Returns the type of the value fIvalueNamefR in the key
  108. fIkeyNamefR.  For more information on the possible types, see
  109. SUPPORTED TYPES, below.
  110. .TP
  111. fBregistry values fIkeyNamefR ?fIpatternfR?
  112. .
  113. If fIpatternfR isn't specified, returns a list of names of all the
  114. values of fIkeyNamefR.  If fIpatternfR is specified, only those
  115. names matching fIpatternfR are returned.  Matching is determined
  116. using the same rules as for fBstringfR fBmatchfR.
  117. .SH "SUPPORTED TYPES"
  118. Each value under a key in the registry contains some data of a
  119. particular type in a type-specific representation.  The fBregistryfR
  120. command converts between this internal representation and one that can
  121. be manipulated by Tcl scripts.  In most cases, the data is simply
  122. returned as a Tcl string.  The type indicates the intended use for the
  123. data, but does not actually change the representation.  For some
  124. types, the fBregistryfR command returns the data in a different form to
  125. make it easier to manipulate.  The following types are recognized by the
  126. registry command:
  127. .TP 17
  128. fBbinaryfR
  129. .
  130. The registry value contains arbitrary binary data.  The data is represented
  131. exactly in Tcl, including any embedded nulls.
  132. .TP
  133. fBnonefR
  134. .
  135. The registry value contains arbitrary binary data with no defined
  136. type.  The data is represented exactly in Tcl, including any embedded
  137. nulls.
  138. .TP
  139. fBszfR
  140. .
  141. The registry value contains a null-terminated string.  The data is 
  142. represented in Tcl as a string.
  143. .TP
  144. fBexpand_szfR
  145. .
  146. The registry value contains a null-terminated string that contains
  147. unexpanded references to environment variables in the normal Windows
  148. style (for example, "%PATH%").  The data is represented in Tcl as a
  149. string.
  150. .TP
  151. fBdwordfR
  152. .
  153. The registry value contains a little-endian 32-bit number.  The data is
  154. represented in Tcl as a decimal string.
  155. .TP
  156. fBdword_big_endianfR
  157. .
  158. The registry value contains a big-endian 32-bit number.  The data is
  159. represented in Tcl as a decimal string.
  160. .TP
  161. fBlinkfR
  162. .
  163. The registry value contains a symbolic link.  The data is represented
  164. exactly in Tcl, including any embedded nulls.
  165. .TP
  166. fBmulti_szfR
  167. .
  168. The registry value contains an array of null-terminated strings.  The
  169. data is represented in Tcl as a list of strings.
  170. .TP
  171. fBresource_listfR
  172. .
  173. The registry value contains a device-driver resource list.  The data
  174. is represented exactly in Tcl, including any embedded nulls.
  175. .PP
  176. In addition to the symbolically named types listed above, unknown
  177. types are identified using a 32-bit integer that corresponds to the
  178. type code returned by the system interfaces.  In this case, the data
  179. is represented exactly in Tcl, including any embedded nulls.
  180. .SH "PORTABILITY ISSUES"
  181. The registry command is only available on Windows.
  182. .SH EXAMPLE
  183. Print out how double-clicking on a Tcl script file will invoke a Tcl
  184. interpreter:
  185. .CS
  186. package require registry
  187. set ext .tcl
  188. # Read the type name
  189. set type [fBregistry getfR HKEY_CLASSES_ROOTee$ext {}]
  190. # Work out where to look for the command
  191. set path HKEY_CLASSES_ROOTee$typeeeShelleeOpeneecommand
  192. # Read the command!
  193. set command [fBregistry getfR $path {}]
  194. puts "$ext opens with $command"
  195. .CE
  196. .SH KEYWORDS
  197. registry