RegistryKey Class
Assembly: mscorlib (in mscorlib.dll)
'Declaration <ComVisibleAttribute(True)> _ Public NotInheritable Class RegistryKey Inherits MarshalByRefObject Implements IDisposable 'Usage Dim instance As RegistryKey
/** @attribute ComVisibleAttribute(true) */ public final class RegistryKey extends MarshalByRefObject implements IDisposable
ComVisibleAttribute(true) public final class RegistryKey extends MarshalByRefObject implements IDisposable
Not applicable.
To get an instance of RegistryKey, use the one of the static members of the Registry class.
The registry acts as a central repository of information for the operating system and the applications on a computer. The registry is organized in a hierarchical format, based on a logical ordering of the elements stored within it (please see Registry for the base-level items in this hierarchy). When storing information in the registry, select the appropriate location based on the type of information being stored. Be sure to avoid destroying information created by other applications, because this can cause those applications to exhibit unexpected behavior, and can also have an adverse effect upon your own application.
Registry keys are the base unit of organization in the registry, and can be compared to folders in Windows Explorer. A particular key can have subkeys, just as a folder can have subfolders. Each key can be deleted, as long as the user has the appropriate permissions to do so, and the key is not a base key or at the level directly under the base keys. Each key can also have multiple values associated with it (a value can be compared to a file), which are used to store the information — for example, information about an application installed on the computer. Each value holds one particular piece of information, which can be retrieved or updated when required. For instance, you can create a RegistryKey for your company, under the key HKEY_LOCAL_MACHINE\Software, and then a subkey for each application that your company creates. Each subkey holds the information specific to that application, such as color settings, screen location and size, or recognized file extensions.
Note that information stored in the registry is available to other applications and users, and therefore should not be used to store security data or critical application information.
Caution: |
|---|
| Do not expose RegistryKey objects in such a way that a malicious program could create thousands of meaningless subkeys or key/value pairs. For example, do not allow callers to enter arbitrary keys or values. |
Windows Mobile 2003 for Pocket PC, Windows Mobile 2003 for Smartphone, Windows CE Platform Note: In .NET Compact Framework applications, before deleting a subkey any open instances of the subkey and its child subkeys must be explicitly closed. The maximum depth of subkeys, as determined by Windows CE, is 15.
The following code example shows how to create a subkey under HKEY_CURRENT_USER, manipulate its contents, and then delete the subkey.
Imports Microsoft.VisualBasic Imports System Imports System.Security.Permissions Imports Microsoft.Win32 <Assembly: RegistryPermissionAttribute( _ SecurityAction.RequestMinimum, ViewAndModify := "HKEY_CURRENT_USER")> Public Class RegKey Shared Sub Main() ' Create a subkey named Test9999 under HKEY_CURRENT_USER. Dim test9999 As RegistryKey = _ Registry.CurrentUser.CreateSubKey("Test9999") ' Create two subkeys under HKEY_CURRENT_USER\Test9999. test9999.CreateSubKey("TestName").Close() Dim testSettings As RegistryKey = _ test9999.CreateSubKey("TestSettings") ' Create data for the TestSettings subkey. testSettings.SetValue("Language", "French") testSettings.SetValue("Level", "Intermediate") testSettings.SetValue("ID", 123) testSettings.Close() ' Print the information from the Test9999 subkey. Console.WriteLine("There are {0} subkeys under Test9999.", _ test9999.SubKeyCount.ToString()) For Each subKeyName As String In test9999.GetSubKeyNames() Dim tempKey As RegistryKey = _ test9999.OpenSubKey(subKeyName) Console.WriteLine(vbCrLf & "There are {0} values for " & _ "{1}.", tempKey.ValueCount.ToString(), tempKey.Name) For Each valueName As String In tempKey.GetValueNames() Console.WriteLine("{0,-8}: {1}", valueName, _ tempKey.GetValue(valueName).ToString()) Next Next ' Delete the ID value. testSettings = test9999.OpenSubKey("TestSettings", True) testSettings.DeleteValue("id") ' Verify the deletion. Console.WriteLine(CType(testSettings.GetValue( _ "id", "ID not found."), String)) testSettings.Close() ' Delete or close the new subkey. Console.Write(vbCrLf & "Delete newly created " & _ "registry key? (Y/N) ") If Char.ToUpper(Convert.ToChar(Console.Read())) = "Y"C Then Registry.CurrentUser.DeleteSubKeyTree("Test9999") Console.WriteLine(vbCrLf & "Registry key {0} deleted.", _ test9999.Name) Else Console.WriteLine(vbCrLf & "Registry key {0} closed.", _ test9999.ToString()) test9999.Close() End If End Sub End Class
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.
Caution: