RegistryKey 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Windows 레지스트리의 키 수준 노드를 나타냅니다. 이 클래스는 레지스트리 캡슐화 클래스입니다.
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
- 상속
- 상속
-
RegistryKey
- 특성
- 구현
예제
다음 코드 예제에서는 HKEY_CURRENT_USER 아래에 하위 키를 만들고 내용을 조작한 다음 하위 키를 삭제하는 방법을 보여 줍니다.
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
설명
의 RegistryKeyinstance 얻으려면 클래스의 정적 멤버 Registry 중 하나를 사용합니다.
레지스트리를 컴퓨터에 운영 체제 및 애플리케이션에 대 한 정보의 중앙 저장소 역할을 합니다. 레지스트리는 그 안에 저장된 요소의 논리적 순서에 따라 계층 구조 형식으로 구성됩니다(이 계층 구조의 기본 수준 항목은 참조 Registry 하세요). 레지스트리에 정보를 저장할 때 저장되는 정보의 유형에 따라 적절한 위치를 선택합니다. 때문에 이러한 애플리케이션이 예기치 않은 문제가 발생할 수 있으며 사용자 고유의 애플리케이션에 부정적인 영향을 줄 수도 있습니다 다른 애플리케이션에서 만든 정보를 제거 하지 않도록 해야 합니다.
중요
이 형식이 구현 하는 IDisposable 인터페이스입니다. 형식을 사용 하 여 마쳤으면 직접 또는 간접적으로의 삭제 해야 있습니다. 직접 형식의 dispose 호출 해당 Dispose 의 메서드를 try
/catch
블록입니다. 삭제 하지 직접, 언어 구문 같은 사용 using
(C#에서) 또는 Using
(Visual Basic에서는). 자세한 내용은 "를 사용 하는 개체는 구현 IDisposable" 섹션을 참조 하세요.를 IDisposable 인터페이스 항목입니다.
레지스트리 키는 레지스트리의 organization 기본 단위이며 파일 탐색기 폴더와 비교할 수 있습니다. 폴더에 하위 폴더가 있을 수 있는 것처럼 특정 키에는 하위 키가 있을 수 있습니다. 사용자에게 적절한 권한이 있고 키가 기본 키 또는 기본 키 바로 아래의 수준에 있지 않은 한 각 키를 삭제할 수 있습니다. 또한 각 키에는 컴퓨터에 설치된 애플리케이션에 대한 정보와 같은 정보를 저장하는 데 사용되는 여러 값(파일과 값을 비교할 수 있음)이 있을 수도 있습니다. 각 값은 필요한 경우 검색하거나 업데이트할 수 있는 하나의 특정 정보를 보유합니다. 예를 들어 만들 수 있습니다는 RegistryKey 키 HKEY_LOCAL_MACHINE\Software, 회사, 한 다음 회사 만드는 각 애플리케이션에 대 한 하위 키입니다. 각 하위 키 설정과 색 화면 위치 및 크기와 같은 해당 애플리케이션에 관련 된 정보가 저장 하거나 파일 확장명을 인식 합니다.
레지스트리에 저장 된 정보 다른 애플리케이션 및 사용자를 사용할 수 있고 따라서 해서는 안 보안 데이터 나 중요 한 애플리케이션 정보를 저장할 note 합니다.
주의
악의적인 프로그램이 수천 개의 의미 없는 하위 키 또는 키/값 쌍을 만들 수 있는 방식으로 개체를 노출 RegistryKey 하지 마세요. 예를 들어 호출자가 임의의 키 또는 값을 입력하도록 허용하지 않습니다.
.NET Framework 4부터 레지스트리 키의 길이는 더 이상 255자로 제한되지 않습니다.
속성
Handle |
현재 SafeRegistryHandle 개체가 캡슐화하는 레지스트리 키를 나타내는 RegistryKey 개체를 가져옵니다. |
Name |
키 이름을 검색합니다. |
SubKeyCount |
현재 키의 하위 키 개수를 검색합니다. |
ValueCount |
키의 값 개수를 검색합니다. |
View |
레지스트리 키를 만드는 데 사용된 뷰를 가져옵니다. |
메서드
Close() |
내용이 수정되었으면 키를 닫고 디스크에 플러시합니다. |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
CreateSubKey(String) |
새 하위 키를 만들거나 쓰기 권한으로 기존 하위 키를 엽니다. |
CreateSubKey(String, Boolean) |
새 하위 키를 만들거나 지정된 액세스로 기존 하위 키를 엽니다. .NET Framework 4.6부터 사용할 수 있습니다. |
CreateSubKey(String, Boolean, RegistryOptions) |
새 하위 키를 만들거나 지정된 액세스로 기존 하위 키를 엽니다. .NET Framework 4.6부터 사용할 수 있습니다. |
CreateSubKey(String, RegistryKeyPermissionCheck) |
지정된 권한 검사 옵션을 사용하여 새 하위 키를 만들거나 쓰기 권한으로 기존 하위 키를 엽니다. |
CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions) |
지정된 권한 검사 및 레지스트리 옵션을 사용하여 하위 키를 만들거나 쓰기 권한을 위해 하위 키를 엽니다. |
CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity) |
지정된 권한 검사 옵션, 레지스트리 옵션 및 레지스트리 보안을 사용하여 하위 키를 만들거나 쓰기 권한을 위해 하위 키를 엽니다. |
CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity) |
지정된 권한 검사 옵션과 레지스트리 보안을 사용하여 새 하위 키를 만들거나 쓰기 권한으로 기존 하위 키를 엽니다. |
DeleteSubKey(String) |
지정된 하위 키를 삭제합니다. |
DeleteSubKey(String, Boolean) |
지정된 하위 키를 삭제하고 하위 키가 없는 경우 예외를 발생시킬지 여부를 지정합니다. |
DeleteSubKeyTree(String) |
하위 키와 자식 하위 키를 재귀적으로 삭제합니다. |
DeleteSubKeyTree(String, Boolean) |
지정된 하위 키와 자식 하위 키를 재귀적으로 삭제하고 하위 키가 없는 경우 예외를 발생시킬지 여부를 지정합니다. |
DeleteValue(String) |
지정된 값을 이 키에서 삭제합니다. |
DeleteValue(String, Boolean) |
이 키에서 지정된 값을 삭제하고 값이 없을 경우 예외를 발생시킬지 여부를 지정합니다. |
Dispose() |
RegistryKey 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
Finalize() |
내용이 수정되었으면 키를 닫고 디스크에 플러시합니다. |
Flush() |
지정된 열린 레지스트리 키의 특성을 모두 레지스트리에 기록합니다. |
FromHandle(SafeRegistryHandle) |
지정된 핸들에서 레지스트리 키를 만듭니다. |
FromHandle(SafeRegistryHandle, RegistryView) |
지정된 핸들 및 레지스트리 뷰 설정에서 레지스트리 키를 만듭니다. |
GetAccessControl() |
현재 레지스트리 키에 대한 액세스 제어 보안을 반환합니다. |
GetAccessControl(AccessControlSections) |
현재 레지스트리 키에 대한 액세스 제어 보안의 지정된 섹션을 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetSubKeyNames() |
모든 하위 키 이름이 포함된 문자열의 배열을 검색합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
GetValue(String) |
지정된 이름과 연결된 값을 검색합니다. 이름/값 쌍이 레지스트리에 없으면 |
GetValue(String, Object) |
지정된 이름과 연결된 값을 검색합니다. 이름이 없으면 사용자가 제공하는 기본값을 반환합니다. |
GetValue(String, Object, RegistryValueOptions) |
지정된 이름 및 검색 옵션과 연결된 값을 검색합니다. 이름이 없으면 사용자가 제공하는 기본값을 반환합니다. |
GetValueKind(String) |
지정된 이름과 연결된 값의 레지스트리 데이터 형식을 검색합니다. |
GetValueNames() |
이 키와 관련된 모든 값 이름이 포함된 문자열의 배열을 검색합니다. |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
OpenBaseKey(RegistryHive, RegistryView) |
지정된 뷰를 사용하여 로컬 컴퓨터의 요청된 키를 나타내는 새 RegistryKey를 엽니다. |
OpenRemoteBaseKey(RegistryHive, String) |
원격 컴퓨터에서 요청된 키를 나타내는 새 RegistryKey를 엽니다. |
OpenRemoteBaseKey(RegistryHive, String, RegistryView) |
지정된 뷰를 사용하여 원격 컴퓨터의 요청된 키를 나타내는 새 레지스트리 키를 엽니다. |
OpenSubKey(String) |
하위 키를 읽기 전용으로 검색합니다. |
OpenSubKey(String, Boolean) |
지정된 하위 키를 검색하고 키에 쓰기 액세스를 적용할지 여부를 지정합니다. |
OpenSubKey(String, RegistryKeyPermissionCheck) |
읽기 또는 읽기/쓰기 권한으로 지정된 하위 키를 검색합니다. |
OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights) |
지정된 액세스 권한을 요청하여 읽기 또는 읽기/쓰기 권한으로 지정된 하위 키를 검색합니다. |
OpenSubKey(String, RegistryRights) |
지정된 이름 및 액세스 권한으로 하위 키를 검색합니다. .NET Framework 4.6부터 사용할 수 있습니다. |
SetAccessControl(RegistrySecurity) |
Windows 액세스 제어 보안을 기존 레지스트리 키에 적용합니다. |
SetValue(String, Object) |
지정된 이름/값 쌍을 설정합니다. |
SetValue(String, Object, RegistryValueKind) |
지정된 레지스트리 데이터 형식을 사용하여 레지스트리 키에서 이름/값 쌍의 값을 설정합니다. |
ToString() |
이 키의 문자열 표현을 검색합니다. |
명시적 인터페이스 구현
IDisposable.Dispose() |
이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다. 현재 키에서 Close()를 수행합니다. |
확장 메서드
GetAccessControl(RegistryKey) |
레지스트리 키의 보안 정보를 반환합니다. |
GetAccessControl(RegistryKey, AccessControlSections) |
레지스트리 키의 보안 정보를 반환합니다. |
SetAccessControl(RegistryKey, RegistrySecurity) |
기존 레지스트리 키의 보안 특성을 변경합니다. |
적용 대상
추가 정보
.NET