Microsoft.Win32 네임스페이스를 사용하여 레지스트리 읽기 및 쓰기(Visual Basic)
My.Computer.Registry만으로도 레지스트리에 대한 기본적인 프로그래밍 작업을 수행할 수 있지만 .NET Framework의 Microsoft.Win32 네임스페이스에 있는 Registry 및 RegistryKey 클래스를 사용할 수도 있습니다.
Registry 클래스의 키
Registry 클래스는 하위 키 및 해당 값에 액세스하는 데 사용할 수 있는 기본 레지스트리 키를 제공합니다.기본 키 자체는 읽기 전용입니다.다음 표에서는 Registry 클래스에서 노출하는 7개의 키를 보여 줍니다.
키 |
설명 |
---|---|
문서 형식과 해당 형식에 연결된 속성을 정의합니다. |
|
사용자와 관련되지 않은 하드웨어 구성 정보를 포함합니다. |
|
환경 변수 등의 현재 사용자 기본 설정에 대한 정보를 포함합니다. |
|
가상 장치 드라이버에서 사용하는 것과 같은 동적 레지스트리 데이터를 포함합니다. |
|
로컬 컴퓨터의 구성 데이터를 저장하는 5개의 하위 키(Hardware, SAM, Security, Software 및 System)를 포함합니다. |
|
소프트웨어 구성 요소의 성능 정보를 포함합니다. |
|
사용자 기본 설정의 기본값에 대한 정보를 포함합니다. |
보안 정보 |
---|
데이터를 로컬 컴퓨터(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
참고 항목
참조
Try...Catch...Finally 문(Visual Basic)