RegistryKey Klas

Definitie

Vertegenwoordigt een knooppunt op sleutelniveau in het Windows register. Deze klasse is een registerinkapseling.

public ref class RegistryKey sealed : MarshalByRefObject, IDisposable
public sealed class RegistryKey : MarshalByRefObject, IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RegistryKey : MarshalByRefObject, IDisposable
type RegistryKey = class
    inherit MarshalByRefObject
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type RegistryKey = class
    inherit MarshalByRefObject
    interface IDisposable
Public NotInheritable Class RegistryKey
Inherits MarshalByRefObject
Implements IDisposable
Overname
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een subsleutel maakt onder HKEY_CURRENT_USER, de inhoud ervan bewerkt en vervolgens de subsleutel verwijdert.

using namespace System;
using namespace System::Security::Permissions;
using namespace Microsoft::Win32;

int main()
{
   // Create a subkey named Test9999 under HKEY_CURRENT_USER.
   RegistryKey ^ test9999 = Registry::CurrentUser->CreateSubKey( "Test9999" );

   // Create two subkeys under HKEY_CURRENT_USER\Test9999.
   test9999->CreateSubKey( "TestName" )->Close();
   RegistryKey ^ testSettings = 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() );
   array<String^>^subKeyNames = test9999->GetSubKeyNames();
   for ( int i = 0; i < subKeyNames->Length; i++ )
   {
      RegistryKey ^ tempKey = test9999->OpenSubKey( subKeyNames[ i ] );
      Console::WriteLine( "\nThere are {0} values for {1}.", tempKey->ValueCount.ToString(), tempKey->Name );
      array<String^>^valueNames = tempKey->GetValueNames();
      for ( int j = 0; j < valueNames->Length; j++ )
      {
         Console::WriteLine( "{0,-8}: {1}", valueNames[ j ], tempKey->GetValue( valueNames[ j ] )->ToString() );

      }
   }
   
   // Delete the ID value.
   testSettings = test9999->OpenSubKey( "TestSettings", true );
   testSettings->DeleteValue( "id" );

   // Verify the deletion.
   Console::WriteLine( dynamic_cast<String^>(testSettings->GetValue(  "id", "ID not found." )) );
   testSettings->Close();

   // Delete or close the new subkey.
   Console::Write( "\nDelete newly created registry key? (Y/N) " );
   if ( Char::ToUpper( Convert::ToChar( Console::Read() ) ) == 'Y' )
   {
      Registry::CurrentUser->DeleteSubKeyTree( "Test9999" );
      Console::WriteLine( "\nRegistry key {0} deleted.", test9999->Name );
   }
   else
   {
      Console::WriteLine( "\nRegistry key {0} closed.", test9999->ToString() );
      test9999->Close();
   }
}
using System;
using System.Security.Permissions;
using Microsoft.Win32;

class RegKey
{
    static void Main()
    {
        // Create a subkey named Test9999 under HKEY_CURRENT_USER.
        RegistryKey test9999 =
            Registry.CurrentUser.CreateSubKey("Test9999");
        // Create two subkeys under HKEY_CURRENT_USER\Test9999. The
        // keys are disposed when execution exits the using statement.
        using(RegistryKey
            testName = test9999.CreateSubKey("TestName"),
            testSettings = test9999.CreateSubKey("TestSettings"))
        {
            // Create data for the TestSettings subkey.
            testSettings.SetValue("Language", "French");
            testSettings.SetValue("Level", "Intermediate");
            testSettings.SetValue("ID", 123);
        }

        // Print the information from the Test9999 subkey.
        Console.WriteLine("There are {0} subkeys under {1}.",
            test9999.SubKeyCount.ToString(), test9999.Name);
        foreach(string subKeyName in test9999.GetSubKeyNames())
        {
            using(RegistryKey
                tempKey = test9999.OpenSubKey(subKeyName))
            {
                Console.WriteLine("\nThere are {0} values for {1}.",
                    tempKey.ValueCount.ToString(), tempKey.Name);
                foreach(string valueName in tempKey.GetValueNames())
                {
                    Console.WriteLine("{0,-8}: {1}", valueName,
                        tempKey.GetValue(valueName).ToString());
                }
            }
        }

        using(RegistryKey
            testSettings = test9999.OpenSubKey("TestSettings", true))
        {
            // Delete the ID value.
            testSettings.DeleteValue("id");

            // Verify the deletion.
            Console.WriteLine((string)testSettings.GetValue(
                "id", "ID not found."));
        }

        // Delete or close the new subkey.
        Console.Write("\nDelete newly created registry key? (Y/N) ");
        if(Char.ToUpper(Convert.ToChar(Console.Read())) == 'Y')
        {
            Registry.CurrentUser.DeleteSubKeyTree("Test9999");
            Console.WriteLine("\nRegistry key {0} deleted.",
                test9999.Name);
        }
        else
        {
            Console.WriteLine("\nRegistry key {0} closed.",
                test9999.ToString());
            test9999.Close();
        }
    }
}
Imports System.Security.Permissions
Imports Microsoft.Win32

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

Opmerkingen

Als u een exemplaar van RegistryKeywilt ophalen, gebruikt u een van de statische leden van de Registry klasse.

Het register fungeert als een centrale opslagplaats met informatie voor het besturingssysteem en de toepassingen op een computer. Het register is ingedeeld in een hiërarchische indeling, op basis van een logische volgorde van de elementen die erin zijn opgeslagen (zie Registry de items op basisniveau in deze hiërarchie). Wanneer u gegevens opslaat in het register, selecteert u de juiste locatie op basis van het type informatie dat wordt opgeslagen. Zorg ervoor dat u het vernietigen van gegevens die door andere toepassingen zijn gemaakt, vermijdt, omdat dit ertoe kan leiden dat deze toepassingen onverwacht gedrag vertonen en ook een negatief effect kunnen hebben op uw eigen toepassing.

Important

Met dit type wordt de IDisposable interface geïmplementeerd. Wanneer u klaar bent met het gebruik van het type, moet u het direct of indirect verwijderen. Als u het type rechtstreeks wilt verwijderen, roept u de Dispose methode aan in een try/catch blok. Als u deze indirect wilt verwijderen, gebruikt u een taalconstructie zoals using (in C#) of Using (in Visual Basic). Zie de sectie 'Using an Object that Implements IDisposable' (Een object gebruiken dat IDisposable implementeert) in het IDisposable interfaceonderwerp voor meer informatie.

Registersleutels zijn de basiseenheid van de organisatie in het register en kunnen worden vergeleken met mappen in Verkenner. Een bepaalde sleutel kan subsleutels bevatten, net zoals een map submappen kan hebben. Elke sleutel kan worden verwijderd, zolang de gebruiker de juiste machtigingen heeft om dit te doen, en de sleutel is geen basissleutel of op het niveau direct onder de basissleutels. Aan elke sleutel kunnen ook meerdere waarden zijn gekoppeld (een waarde kan worden vergeleken met een bestand), die worden gebruikt om de informatie op te slaan, bijvoorbeeld informatie over een toepassing die op de computer is geïnstalleerd. Elke waarde bevat één bepaald stukje informatie, dat indien nodig kan worden opgehaald of bijgewerkt. U kunt bijvoorbeeld een RegistryKey voor uw bedrijf maken, onder de sleutel HKEY_LOCAL_MACHINE\Softwareen vervolgens een subsleutel voor elke toepassing die uw bedrijf maakt. Elke subsleutel bevat de informatie die specifiek is voor die toepassing, zoals kleurinstellingen, schermlocatie en -grootte of herkende bestandsextensies.

Informatie die in het register is opgeslagen, is beschikbaar voor andere toepassingen en gebruikers en mag daarom niet worden gebruikt om beveiligingsgegevens of essentiële toepassingsgegevens op te slaan.

Caution

Maak objecten op een zodanige manier niet beschikbaar RegistryKey dat een schadelijk programma duizenden betekenisloze subsleutels of sleutel-/waardeparen kan maken. Sta bellers bijvoorbeeld niet toe willekeurige sleutels of waarden in te voeren.

Vanaf het .NET Framework 4 is de lengte van een registersleutel niet langer beperkt tot 255 tekens.

Eigenschappen

Name Description
Handle

Hiermee wordt een SafeRegistryHandle object opgehaald dat de registersleutel vertegenwoordigt die door het huidige RegistryKey object wordt ingekapseld.

Name

Haalt de naam van de sleutel op.

SubKeyCount

Hiermee haalt u het aantal subsleutels van de huidige sleutel op.

ValueCount

Hiermee haalt u het aantal waarden in de sleutel op.

View

Hiermee haalt u de weergave op die is gebruikt om de registersleutel te maken.

Methoden

Name Description
Close()

Sluit de sleutel en spoelt deze naar de schijf als de inhoud ervan is gewijzigd.

CreateObjRef(Type)

Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object.

(Overgenomen van MarshalByRefObject)
CreateSubKey(String, Boolean, RegistryOptions)

Hiermee maakt u een nieuwe subsleutel of opent u een bestaande subsleutel met de opgegeven toegang. Beschikbaar vanaf .NET Framework 4.6.

CreateSubKey(String, Boolean)

Hiermee maakt u een nieuwe subsleutel of opent u een bestaande subsleutel met de opgegeven toegang. Beschikbaar vanaf .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

Hiermee maakt u een subsleutel of opent u een subsleutel voor schrijftoegang met behulp van de opgegeven machtigingscontroleoptie, registeroptie en registerbeveiliging.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

Hiermee maakt u een subsleutel of opent u een subsleutel voor schrijftoegang met behulp van de opgegeven machtigingscontrole en registeropties.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

Hiermee maakt u een nieuwe subsleutel of opent u een bestaande subsleutel voor schrijftoegang met behulp van de opgegeven optie voor machtigingscontrole en registerbeveiliging.

CreateSubKey(String, RegistryKeyPermissionCheck)

Hiermee maakt u een nieuwe subsleutel of opent u een bestaande subsleutel voor schrijftoegang met behulp van de opgegeven machtigingscontroleoptie.

CreateSubKey(String)

Hiermee maakt u een nieuwe subsleutel of opent u een bestaande subsleutel voor schrijftoegang.

DeleteSubKey(String, Boolean)

Hiermee verwijdert u de opgegeven subsleutel en geeft u op of er een uitzondering wordt gegenereerd als de subsleutel niet wordt gevonden.

DeleteSubKey(String)

Hiermee verwijdert u de opgegeven subsleutel.

DeleteSubKeyTree(String, Boolean)

Hiermee verwijdert u de opgegeven subsleutel en alle onderliggende subsleutels recursief en geeft u op of er een uitzondering wordt gegenereerd als de subsleutel niet wordt gevonden.

DeleteSubKeyTree(String)

Hiermee verwijdert u een subsleutel en eventuele onderliggende subsleutels recursief.

DeleteValue(String, Boolean)

Hiermee verwijdert u de opgegeven waarde uit deze sleutel en geeft u op of er een uitzondering wordt gegenereerd als de waarde niet wordt gevonden.

DeleteValue(String)

Hiermee verwijdert u de opgegeven waarde uit deze sleutel.

Dispose()

Alle resources die door het huidige exemplaar van de RegistryKey klasse worden gebruikt, worden vrijgegeven.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Finalize()

Sluit de sleutel en spoelt deze naar de schijf als de inhoud is gewijzigd.

Flush()

Schrijft alle kenmerken van de opgegeven open registersleutel naar het register.

FromHandle(SafeRegistryHandle, RegistryView)

Hiermee maakt u een registersleutel op basis van een opgegeven ingang en registerweergave-instelling.

FromHandle(SafeRegistryHandle)

Hiermee maakt u een registersleutel op basis van een opgegeven ingang.

GetAccessControl()

Retourneert de beveiliging van toegangsbeheer voor de huidige registersleutel.

GetAccessControl(AccessControlSections)

Retourneert de opgegeven secties van de beveiliging van toegangsbeheer voor de huidige registersleutel.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetLifetimeService()

Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd.

(Overgenomen van MarshalByRefObject)
GetSubKeyNames()

Hiermee haalt u een matrix van tekenreeksen op die alle subsleutelnamen bevat.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
GetValue(String, Object, RegistryValueOptions)

Haalt de waarde op die is gekoppeld aan de opgegeven naam en ophaalopties. Als de naam niet wordt gevonden, wordt de standaardwaarde geretourneerd die u opgeeft.

GetValue(String, Object)

Haalt de waarde op die is gekoppeld aan de opgegeven naam. Als de naam niet wordt gevonden, wordt de standaardwaarde geretourneerd die u opgeeft.

GetValue(String)

Haalt de waarde op die is gekoppeld aan de opgegeven naam. Retourneert null als het naam-/waardepaar niet bestaat in het register.

GetValueKind(String)

Hiermee haalt u het registergegevenstype op van de waarde die is gekoppeld aan de opgegeven naam.

GetValueNames()

Hiermee haalt u een matrix van tekenreeksen op die alle waardenamen bevat die aan deze sleutel zijn gekoppeld.

InitializeLifetimeService()

Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren.

(Overgenomen van MarshalByRefObject)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MemberwiseClone(Boolean)

Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object.

(Overgenomen van MarshalByRefObject)
OpenBaseKey(RegistryHive, RegistryView)

Hiermee opent u een nieuwe RegistryKey die de aangevraagde sleutel op de lokale computer vertegenwoordigt met de opgegeven weergave.

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Hiermee opent u een nieuwe registersleutel die de aangevraagde sleutel vertegenwoordigt op een externe computer met de opgegeven weergave.

OpenRemoteBaseKey(RegistryHive, String)

Hiermee opent u een nieuwe RegistryKey die de aangevraagde sleutel op een externe computer vertegenwoordigt.

OpenSubKey(String, Boolean)

Hiermee haalt u een opgegeven subsleutel op en geeft u op of schrijftoegang moet worden toegepast op de sleutel.

OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights)

Haalt de opgegeven subsleutel op voor lees- of lees-/schrijftoegang, waarbij de opgegeven toegangsrechten worden aangevraagd.

OpenSubKey(String, RegistryKeyPermissionCheck)

Haalt de opgegeven subsleutel op voor lees- of lees-/schrijftoegang.

OpenSubKey(String, RegistryRights)

Hiermee haalt u een subsleutel op met de opgegeven naam en toegangsrechten. Beschikbaar vanaf .NET Framework 4.6.

OpenSubKey(String)

Hiermee wordt een subsleutel opgehaald als alleen-lezen.

SetAccessControl(RegistrySecurity)

Hiermee wordt Windows beveiliging van toegangsbeheer toegepast op een bestaande registersleutel.

SetValue(String, Object, RegistryValueKind)

Hiermee stelt u de waarde van een naam/waardepaar in de registersleutel in met behulp van het opgegeven registergegevenstype.

SetValue(String, Object)

Hiermee stelt u het opgegeven naam-/waardepaar in.

ToString()

Hiermee haalt u een tekenreeksweergave van deze sleutel op.

Expliciete interface-implementaties

Name Description
IDisposable.Dispose()

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Voert een Close() op de huidige sleutel uit.

Van toepassing op

Zie ook