Microsoft.Win32 네임스페이스를 사용하여 레지스트리 읽기 및 쓰기(Visual Basic)
My.Computer.Registry
는 레지스트리에 대해 프로그래밍할 때 기본 요구 사항을 충족해야 하지만, .NET의 Microsoft.Win32 네임스페이스에서 Registry 및 RegistryKey 클래스를 사용할 수도 있습니다.
레지스트리 클래스의 키
Registry 클래스는 하위 키 및 값에 액세스하기 위해 사용할 수 있는 기본 레지스트리 키를 제공합니다. 기본 키 자체는 읽기 전용입니다. 다음 표에서는 Registry 클래스에서 사용되는 7개의 키를 나열하고 설명합니다.
Key | 설명 |
---|---|
ClassesRoot | 문서의 형식 및 그러한 형식과 관련된 속성을 정의합니다. |
CurrentConfig | 사용자와 관련되지 않은 하드웨어 구성 정보를 포함합니다. |
CurrentUser | 현재 사용자 기본 설정(예: 환경 변수)에 대한 정보를 포함합니다. |
DynData | 가상 디바이스 드라이버에서 사용하는 것과 같은 동적 레지스트리 데이터를 포함합니다. |
LocalMachine | 로컬 컴퓨터에 대한 구성 데이터를 유지하는 5개의 하위 키(하드웨어, SAM, 보안, 소프트웨어 및 시스템)를 포함합니다. |
PerformanceData | 소프트웨어 구성 요소에 대한 성능 정보를 포함합니다. |
Users | 기본 사용자 기본 설정에 대한 정보를 포함합니다. |
Important
로컬 컴퓨터(LocalMachine)보다 현재 사용자(CurrentUser)에게 데이터를 기록하는 것이 더 안전합니다. 만들고 있는 키가 전에 다른 프로세스(예: 악의적인 프로세스)로 만들어진 경우 일반적으로 "스쿼팅(squatting)"이라는 조건이 발생합니다. 이 문제가 발생하지 않도록 하려면 키가 존재하지 않을 경우 Nothing
을 반환하는 메서드(예: GetValue)를 사용합니다.
레지스트리에서 값 읽기
다음 코드는 HKEY_CURRENT_USER에서 문자열을 읽는 방법을 보여 줍니다.
Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
intVersion = regVersion.GetValue("Version", 0)
regVersion.Close()
End If
다음 코드는 문자열을 읽고, 늘리고, HKEY_CURRENT_USER에 씁니다.
Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
"SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
' Key doesn't exist; create it.
regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
"SOFTWARE\\Microsoft\\TestApp\\1.0")
End If
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
intVersion = regVersion.GetValue("Version", 0)
intVersion = intVersion + 1
regVersion.SetValue("Version", intVersion)
regVersion.Close()
End If
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET