RegistryKey Sınıf

Tanım

Windows kayıt defterindeki anahtar düzeyi düğümü temsil eder. Bu sınıf bir kayıt defteri kapsüllemesidir.

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

Örnekler

Aşağıdaki kod örneğinde, HKEY_CURRENT_USER altında bir alt anahtar oluşturma, içeriğini işleme ve ardından alt anahtarı silme işlemi gösterilmektedir.

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

Açıklamalar

örneğini RegistryKeyalmak için sınıfının statik üyelerinden Registry birini kullanın.

Kayıt defteri, işletim sistemi ve bilgisayardaki uygulamalar için merkezi bir bilgi deposu işlevi görür. Kayıt defteri, içinde depolanan öğelerin mantıksal sıralamasına göre hiyerarşik bir biçimde düzenlenir (lütfen bu hiyerarşideki temel düzey öğeler için bkz Registry . ). Bilgileri kayıt defterinde depolarken, depolanmakta olan bilgilerin türüne göre uygun konumu seçin. Bu, bu uygulamaların beklenmeyen davranışlar sergilemesine neden olabileceği ve kendi uygulamanız üzerinde olumsuz bir etkiye neden olabileceğinden, diğer uygulamalar tarafından oluşturulan bilgilerin yok edilmesinden kaçının.

Important

Bu tür IDisposable arabirimini uygular. Kullanımını bitirdiğinizde, doğrudan ya da dolaylı yoldan atmalısınız. Türü doğrudan atabilmek için, bir Disposetry/ bloğunda catch yöntemini çağırın. Bunu dolaylı olarak atmak için using (C#'de) veya Using (Visual Basic'te) gibi bir dil yapısı kullanın. Daha fazla bilgi için arabirim konusunun "IDisposable Uygulayan Bir Nesne Kullanma" bölümüne IDisposable bakın.

Kayıt defteri anahtarları, kayıt defterindeki temel kuruluş birimidir ve Dosya Gezgini'ndeki klasörlerle karşılaştırılabilir. Bir klasörün alt klasörleri olabileceği gibi, belirli bir anahtarın alt anahtarları olabilir. Kullanıcı uygun izinlere sahip olduğu ve anahtar bir temel anahtar olmadığı veya doğrudan temel anahtarların altındaki düzeyde olduğu sürece her anahtar silinebilir. Her anahtarın kendisiyle ilişkilendirilmiş birden çok değeri de olabilir (bir değer bir dosyayla karşılaştırılabilir), bilgileri depolamak için kullanılır( örneğin, bilgisayarda yüklü bir uygulama hakkındaki bilgiler). Her değer, gerektiğinde alınabilen veya güncelleştirilebilen belirli bir bilgi parçasını barındırıyor. Örneğin, HKEY_LOCAL_MACHINE\Softwareanahtarının altında şirketiniz için bir RegistryKey ve ardından şirketinizin oluşturduğu her uygulama için bir alt anahtar oluşturabilirsiniz. Her alt anahtar, renk ayarları, ekran konumu ve boyutu veya tanınan dosya uzantıları gibi söz konusu uygulamaya özgü bilgileri tutar.

Kayıt defterinde depolanan bilgilerin diğer uygulamalar ve kullanıcılar tarafından kullanılabildiğini ve bu nedenle güvenlik verilerini veya kritik uygulama bilgilerini depolamak için kullanılmaması gerektiğini unutmayın.

Caution

kötü amaçlı bir programın binlerce anlamsız alt anahtar veya anahtar/değer çifti oluşturabileceği şekilde RegistryKey nesneleri kullanıma sunma. Örneğin, arayanların rastgele anahtarlar veya değerler girmesine izin verme.

.NET Framework 4'te başlayarak, kayıt defteri anahtarının uzunluğu artık 255 karakterle sınırlı değildir.

Özellikler

Name Description
Handle

Geçerli SafeRegistryHandle nesnenin kapsüllediğini kayıt defteri anahtarını temsil eden bir RegistryKey nesne alır.

Name

Anahtarın adını alır.

SubKeyCount

Geçerli anahtarın alt anahtarlarının sayısını alır.

ValueCount

Anahtardaki değerlerin sayısını alır.

View

Kayıt defteri anahtarını oluşturmak için kullanılan görünümü alır.

Yöntemler

Name Description
Close()

Anahtarı kapatır ve içeriği değiştirilmişse diske boşaltır.

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
CreateSubKey(String, Boolean, RegistryOptions)

Yeni bir alt anahtar oluşturur veya belirtilen erişime sahip mevcut bir alt anahtarı açar. .NET Framework 4.6'dan itibaren kullanılabilir.

CreateSubKey(String, Boolean)

Yeni bir alt anahtar oluşturur veya belirtilen erişime sahip mevcut bir alt anahtarı açar. .NET Framework 4.6'dan itibaren kullanılabilir.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

Belirtilen izin denetimi seçeneğini, kayıt defteri seçeneğini ve kayıt defteri güvenliğini kullanarak bir alt anahtar oluşturur veya yazma erişimi için bir alt anahtar açar.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

Belirtilen izin denetimi ve kayıt defteri seçeneklerini kullanarak bir alt anahtar oluşturur veya yazma erişimi için bir alt anahtar açar.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

Belirtilen izin denetimi seçeneğini ve kayıt defteri güvenliğini kullanarak yeni bir alt anahtar oluşturur veya yazma erişimi için var olan bir alt anahtarı açar.

CreateSubKey(String, RegistryKeyPermissionCheck)

Belirtilen izin denetimi seçeneğini kullanarak yeni bir alt anahtar oluşturur veya yazma erişimi için var olan bir alt anahtarı açar.

CreateSubKey(String)

Yeni bir alt anahtar oluşturur veya yazma erişimi için var olan bir alt anahtarı açar.

DeleteSubKey(String, Boolean)

Belirtilen alt anahtarı siler ve alt anahtar bulunamazsa özel durum oluşturup oluşturmayacağını belirtir.

DeleteSubKey(String)

Belirtilen alt anahtarı siler.

DeleteSubKeyTree(String, Boolean)

Belirtilen alt anahtarı ve alt alt anahtarları yinelemeli olarak siler ve alt anahtar bulunamazsa özel durum oluşturup oluşturmayacağını belirtir.

DeleteSubKeyTree(String)

Bir alt anahtarı ve alt alt anahtarları yinelemeli olarak siler.

DeleteValue(String, Boolean)

Belirtilen değeri bu anahtardan siler ve değer bulunamazsa özel durumun tetiklenip tetiklenmeyeceğini belirtir.

DeleteValue(String)

Belirtilen değeri bu anahtardan siler.

Dispose()

Sınıfın geçerli örneği RegistryKey tarafından kullanılan tüm kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Finalize()

anahtarı kapatır ve içeriği değiştirilmişse diske boşaltır.

Flush()

Belirtilen açık kayıt defteri anahtarının tüm özniteliklerini kayıt defterine yazar.

FromHandle(SafeRegistryHandle, RegistryView)

Belirtilen tanıtıcı ve kayıt defteri görünümü ayarından bir kayıt defteri anahtarı oluşturur.

FromHandle(SafeRegistryHandle)

Belirtilen tanıtıcıdan bir kayıt defteri anahtarı oluşturur.

GetAccessControl()

Geçerli kayıt defteri anahtarı için erişim denetimi güvenliğini döndürür.

GetAccessControl(AccessControlSections)

Geçerli kayıt defteri anahtarı için erişim denetimi güvenliğinin belirtilen bölümlerini döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetSubKeyNames()

Tüm alt anahtar adlarını içeren dize dizisini alır.

GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
GetValue(String, Object, RegistryValueOptions)

Belirtilen ad ve alma seçenekleriyle ilişkili değeri alır. Ad bulunamazsa, sağladığınız varsayılan değeri döndürür.

GetValue(String, Object)

Belirtilen adla ilişkili değeri alır. Ad bulunamazsa, sağladığınız varsayılan değeri döndürür.

GetValue(String)

Belirtilen adla ilişkili değeri alır. Kayıt defterinde ad/değer çifti yoksa döndürür null .

GetValueKind(String)

Belirtilen adla ilişkili değerin kayıt defteri veri türünü alır.

GetValueNames()

Bu anahtarla ilişkili tüm değer adlarını içeren dize dizisini alır.

InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
OpenBaseKey(RegistryHive, RegistryView)

Belirtilen görünüme sahip yerel makinede istenen anahtarı temsil eden yeni RegistryKey bir açılır.

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Belirtilen görünüme sahip uzak bir makinede istenen anahtarı temsil eden yeni bir kayıt defteri anahtarı açar.

OpenRemoteBaseKey(RegistryHive, String)

Uzak makinede istenen anahtarı temsil eden yeni RegistryKey bir açılır.

OpenSubKey(String, Boolean)

Belirtilen alt anahtarı alır ve yazma erişiminin anahtara uygulanıp uygulanmayacağını belirtir.

OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights)

Belirtilen erişim haklarını isteyerek, okuma veya okuma/yazma erişimi için belirtilen alt anahtarı alır.

OpenSubKey(String, RegistryKeyPermissionCheck)

Okuma veya okuma/yazma erişimi için belirtilen alt anahtarı alır.

OpenSubKey(String, RegistryRights)

Belirtilen ada ve erişim haklarına sahip bir alt anahtar alır. .NET Framework 4.6'dan itibaren kullanılabilir.

OpenSubKey(String)

Bir alt anahtarı salt okunur olarak alır.

SetAccessControl(RegistrySecurity)

Erişim denetimi güvenliğini Windows mevcut kayıt defteri anahtarına uygular.

SetValue(String, Object, RegistryValueKind)

Belirtilen kayıt defteri veri türünü kullanarak kayıt defteri anahtarındaki bir ad/değer çiftinin değerini ayarlar.

SetValue(String, Object)

Belirtilen ad/değer çiftini ayarlar.

ToString()

Bu anahtarın dize gösterimini alır.

Belirtik Arabirim Kullanımları

Name Description
IDisposable.Dispose()

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Geçerli anahtar üzerinde bir Close() gerçekleştirir.

Uzantı Metotları

Name Description
GetAccessControl(RegistryKey, AccessControlSections)

Kayıt defteri anahtarının güvenlik bilgilerini döndürür.

GetAccessControl(RegistryKey)

Kayıt defteri anahtarının güvenlik bilgilerini döndürür.

SetAccessControl(RegistryKey, RegistrySecurity)

Mevcut kayıt defteri anahtarının güvenlik özniteliklerini değiştirir.

Şunlara uygulanır

Ayrıca bkz.