RegistryKey Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy kulcsszintű csomópontot jelöl a Windows beállításjegyzékben. Ez az osztály egy beállításjegyzék-beágyazás.
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
- Öröklődés
- Öröklődés
-
RegistryKey
- Attribútumok
- Megvalósítás
Példák
Az alábbi példakód bemutatja, hogyan hozhat létre alkulcsot a HKEY_CURRENT_USER alatt, hogyan módosíthatja annak tartalmát, majd törölheti az alkulcsot.
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
Megjegyzések
A példány lekéréséhez RegistryKeyhasználja az osztály egyik statikus tagját Registry .
A beállításjegyzék az operációs rendszer és a számítógépen található alkalmazások információinak központi adattáraként működik. A beállításjegyzék hierarchikus formátumban van rendszerezve, a benne tárolt elemek logikai sorrendje alapján (lásd Registry a hierarchia alapszintű elemeit). Amikor adatokat tárol a beállításjegyzékben, válassza ki a megfelelő helyet a tárolt információk típusa alapján. Ügyeljen arra, hogy ne pusztítsa el a más alkalmazások által létrehozott információkat, mert ez az alkalmazások váratlan viselkedést okozhatnak, és kedvezőtlen hatással lehetnek a saját alkalmazására is.
Important
Ez a típus implementálja a IDisposable felületet. Ha befejezte a típus használatát, közvetlenül vagy közvetve kell megsemmisítenie. A típus közvetlen ártalmatlanításához hívja meg a Dispose metódust egy try/catch blokkban. Ha közvetve szeretné megsemmisíteni, használjon olyan nyelvi szerkezetet, mint a using (C#-ban) vagy Using (a Visual Basicben). További információ: "Az IDisposable-t megvalósító objektum használata" című szakasz a IDisposable felület témakörében.
A beállításkulcsok a beállításjegyzék alapvető szervezeti egységei, és összehasonlíthatók a Fájlkezelő mappáival. Egy adott kulcs alkulcsokkal is rendelkezhet, ahogy egy mappa almappái is lehetnek. Minden kulcs törölhető mindaddig, amíg a felhasználó rendelkezik a megfelelő engedélyekkel erre, és a kulcs nem alapkulcs vagy közvetlenül az alapkulcsok alatti szinten. Minden kulcshoz több érték is társítható (egy érték összehasonlítható egy fájllal), amelyek az információk tárolására szolgálnak – például a számítógépre telepített alkalmazással kapcsolatos információk. Minden érték egy adott információt tartalmaz, amely szükség esetén lekérhető vagy frissíthető. Létrehozhat például egy vállalata számára a RegistryKey kulcs HKEY_LOCAL_MACHINE\Softwarealatt, majd egy alkulcsot minden alkalmazáshoz, amelyet a vállalat létrehoz. Minden alkulcs tartalmazza az adott alkalmazásra vonatkozó információkat, például a színbeállításokat, a képernyő helyét és méretét, vagy a felismert fájlkiterjesztéseket.
Vegye figyelembe, hogy a beállításjegyzékben tárolt információk más alkalmazások és felhasználók számára is elérhetők, ezért nem használhatók biztonsági adatok vagy kritikus alkalmazásadatok tárolására.
Figyelmeztetés
Ne tegye közzé RegistryKey az objektumokat úgy, hogy egy rosszindulatú program több ezer értelmetlen alkulcsot vagy kulcs/érték párot hozzon létre. Ne engedélyezze például, hogy a hívók tetszőleges kulcsokat vagy értékeket adjanak meg.
A .NET Framework 4-től kezdve a beállításkulcs hossza már nem korlátozódik 255 karakterre.
Tulajdonságok
| Name | Description |
|---|---|
| Handle |
SafeRegistryHandle Lekéri azt az objektumot, amely az aktuális RegistryKey objektum által beágyazott beállításkulcsot jelöli. |
| Name |
Lekéri a kulcs nevét. |
| SubKeyCount |
Lekéri az aktuális kulcs alkulcsainak számát. |
| ValueCount |
Lekéri a kulcs értékeinek számát. |
| View |
Lekéri a beállításkulcs létrehozásához használt nézetet. |
Metódusok
| Name | Description |
|---|---|
| Close() |
Bezárja a kulcsot, és kiüríti a lemezre, ha a tartalma módosult. |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| CreateSubKey(String, Boolean, RegistryOptions) |
Létrehoz egy új alkulcsot, vagy megnyit egy meglévő alkulcsot a megadott hozzáféréssel. A .NET Framework 4.6-tól kezdve érhető el. |
| CreateSubKey(String, Boolean) |
Létrehoz egy új alkulcsot, vagy megnyit egy meglévő alkulcsot a megadott hozzáféréssel. A .NET Framework 4.6-tól kezdve érhető el. |
| CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity) |
Létrehoz egy alkulcsot, vagy megnyitja az írási hozzáférés alkulcsát a megadott engedélyellenőrzési beállítás, beállításjegyzék-beállítás és beállításjegyzék-biztonság használatával. |
| CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions) |
Létrehoz egy alkulcsot, vagy megnyitja az írási hozzáférés alkulcsát a megadott engedélyellenőrzési és beállításjegyzék-beállítások használatával. |
| CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity) |
Létrehoz egy új alkulcsot, vagy megnyit egy meglévő alkulcsot az írási hozzáféréshez a megadott engedélyellenőrzési beállítás és beállításjegyzék-biztonság használatával. |
| CreateSubKey(String, RegistryKeyPermissionCheck) |
Létrehoz egy új alkulcsot, vagy megnyit egy meglévő alkulcsot az írási hozzáféréshez a megadott engedélyellenőrzési beállítással. |
| CreateSubKey(String) |
Létrehoz egy új alkulcsot, vagy megnyit egy meglévő alkulcsot az írási hozzáféréshez. |
| DeleteSubKey(String, Boolean) |
Törli a megadott alkulcsot, és megadja, hogy kivétel keletkezik-e, ha az alkulcs nem található. |
| DeleteSubKey(String) |
Törli a megadott alkulcsot. |
| DeleteSubKeyTree(String, Boolean) |
A megadott alkulcsot és a gyermek alkulcsokat rekurzív módon törli, és megadja, hogy a rendszer kivételt okoz-e, ha az alkulcs nem található. |
| DeleteSubKeyTree(String) |
Az alkulcs és a gyermek alkulcsok rekurzív törlése. |
| DeleteValue(String, Boolean) |
Törli a megadott értéket ebből a kulcsból, és megadja, hogy kivétel keletkezik-e, ha az érték nem található. |
| DeleteValue(String) |
Törli a megadott értéket ebből a kulcsból. |
| Dispose() |
Az osztály aktuális példánya által használt összes erőforrást felszabadítja RegistryKey . |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Finalize() |
Bezárja a kulcsot, és a tartalmát módosítva a lemezre üríti. |
| Flush() |
A megadott nyitott beállításkulcs összes attribútumát beírja a beállításjegyzékbe. |
| FromHandle(SafeRegistryHandle, RegistryView) |
Létrehoz egy beállításkulcsot egy megadott leíró- és beállításjegyzéknézet-beállításból. |
| FromHandle(SafeRegistryHandle) |
Létrehoz egy beállításkulcsot egy megadott leíróból. |
| GetAccessControl() |
Az aktuális beállításkulcs hozzáférés-vezérlési biztonságát adja vissza. |
| GetAccessControl(AccessControlSections) |
Az aktuális beállításkulcs hozzáférés-vezérlési biztonságának megadott szakaszait adja vissza. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetSubKeyNames() |
Lekéri az összes alkulcsnevet tartalmazó sztringtömböt. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| GetValue(String, Object, RegistryValueOptions) |
Lekéri a megadott névhez és lekérési beállításokhoz társított értéket. Ha a név nem található, a megadott alapértelmezett értéket adja vissza. |
| GetValue(String, Object) |
Lekéri a megadott névhez társított értéket. Ha a név nem található, a megadott alapértelmezett értéket adja vissza. |
| GetValue(String) |
Lekéri a megadott névhez társított értéket. Akkor adja |
| GetValueKind(String) |
Lekéri a megadott névhez társított érték beállításjegyzék-adattípusát. |
| GetValueNames() |
Lekéri a kulcshoz társított összes értéknevet tartalmazó sztringtömböt. |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| OpenBaseKey(RegistryHive, RegistryView) |
Megnyit egy újat RegistryKey , amely a kért kulcsot jelöli a helyi gépen a megadott nézettel. |
| OpenRemoteBaseKey(RegistryHive, String, RegistryView) |
Megnyit egy új beállításkulcsot, amely a kért kulcsot jelöli egy távoli gépen a megadott nézetben. |
| OpenRemoteBaseKey(RegistryHive, String) |
Megnyit egy újat RegistryKey , amely a kért kulcsot jelöli egy távoli gépen. |
| OpenSubKey(String, Boolean) |
Lekéri a megadott alkulcsot, és megadja, hogy az írási hozzáférést alkalmazni kell-e a kulcsra. |
| OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights) |
Lekéri a megadott alkulcsot az olvasási vagy olvasási/írási hozzáféréshez, és kéri a megadott hozzáférési jogosultságokat. |
| OpenSubKey(String, RegistryKeyPermissionCheck) |
Lekéri a megadott alkulcsot olvasási vagy olvasási/írási hozzáféréshez. |
| OpenSubKey(String, RegistryRights) |
Lekéri a megadott névvel és hozzáférési jogosultságokkal rendelkező alkulcsot. A .NET Framework 4.6-tól kezdve érhető el. |
| OpenSubKey(String) |
Egy alkulcs lekérése írásvédettként. |
| SetAccessControl(RegistrySecurity) |
Windows hozzáférés-vezérlési biztonságot alkalmaz egy meglévő beállításkulcsra. |
| SetValue(String, Object, RegistryValueKind) |
Beállítja egy név/érték pár értékét a beállításkulcsban a megadott beállításjegyzék-adattípus használatával. |
| SetValue(String, Object) |
Beállítja a megadott név-érték párot. |
| ToString() |
Lekéri ennek a kulcsnak a sztringképét. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Ez az API a termékinfrastruktúrát támogatja, és közvetlenül a kódból nem használható. Az aktuális kulcson hajt végre egy Close() műveletet. |
Bővítő metódusok
| Name | Description |
|---|---|
| GetAccessControl(RegistryKey, AccessControlSections) |
Egy beállításkulcs biztonsági adatait adja vissza. |
| GetAccessControl(RegistryKey) |
Egy beállításkulcs biztonsági adatait adja vissza. |
| SetAccessControl(RegistryKey, RegistrySecurity) |
Módosítja egy meglévő beállításkulcs biztonsági attribútumait. |