다음을 통해 공유


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

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

레지스트리 클래스의 키

클래스는 Registry 하위 키 및 해당 값에 액세스하는 데 사용할 수 있는 기본 레지스트리 키를 제공합니다. 기본 키 자체는 읽기 전용입니다. 다음 표에서는 클래스에서 노출하는 Registry 7개의 키를 나열하고 설명합니다.

설명
ClassesRoot 문서 형식 및 해당 형식과 연결된 속성을 정의합니다.
CurrentConfig 사용자별이 아닌 하드웨어 구성 정보를 포함합니다.
CurrentUser 환경 변수와 같은 현재 사용자 기본 설정에 대한 정보를 포함합니다.
DynData 가상 디바이스 드라이버에서 사용하는 것과 같은 동적 레지스트리 데이터를 포함합니다.
LocalMachine 로컬 컴퓨터에 대한 구성 데이터를 포함하는 5개의 하위 키(하드웨어, SAM, 보안, 소프트웨어 및 시스템)를 포함합니다.
PerformanceData 소프트웨어 구성 요소에 대한 성능 정보를 포함합니다.
Users 기본 사용자 기본 설정에 대한 정보를 포함합니다.

중요합니다

로컬 컴퓨터CurrentUser()보다 현재 사용자(LocalMachine)에게 데이터를 쓰는 것이 더 안전합니다. 일반적으로 "스쿼팅"이라고 하는 조건은 만들고 있는 키가 이미 다른 악의적인 프로세스에 의해 생성된 경우에 발생합니다. 이 문제가 발생하지 않도록 하려면 키가 아직 없는 경우 반환 GetValue 되는 메서드(예: Nothing메서드)를 사용합니다.

레지스트리에서 값 읽기

다음 코드는 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

참고하십시오