다음을 통해 공유


Microsoft.Win32 네임스페이스를 사용하여 레지스트리 읽기 및 쓰기(Visual Basic)

My.Computer.Registry는 레지스트리에 대해 프로그래밍할 때 기본 요구 사항을 충족해야 하지만, .NET의 Microsoft.Win32 네임스페이스에서 RegistryRegistryKey 클래스를 사용할 수도 있습니다.

레지스트리 클래스의 키

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

참고 항목