C#에서 레지스트리를 등록하고 읽는 방법에 대해 알아보도록 하겠습니다. 목차는 다음과 같습니다. 😘
- 레지스트리(Registry)
- 레지스트리 등록(CreateSubKey)
- 레지스트리 읽기(GetValue)
레지스트리(Registry)
C#은 Microsoft.Win32 네임스페이스의 Registry 클래스를 이용하여 레지스트리 편집기에 접근할 수 있습니다.
키 최초 생성과 값을 읽는 예시 자료입니다.
레지스트리 등록(CreateSubKey)
string subKey = "BEOMSANG";
string keyName = "NAME";
string keyValue = "HELLO!";
using (RegistryKey k1 = Registry.CurrentUser.OpenSubKey("Software", true))
{
using (RegistryKey k2 = k1.CreateSubKey(subKey))
{
//if (k2.GetValue(keyName) == null)
{
k2.SetValue(keyName, keyValue);
}
}
}
현재 사용자 설정 > Software 폴더에 BEOMSANG 폴더를 만들고 NAME 키를 HELLO! 값으로 등록하였습니다.
//if (k2.GetValue(keyName) == null)
이 부분을 주석으로 처리하였는데 주석을 포함하면 최초 1회만 생성(null인 경우) 합니다.
주석을 제외하면 실행 시마다 값을 설정합니다.
레지스트리 읽기(GetValue)
string subKey = "BEOMSANG";
string keyName = "NAME";
string rtn = string.Empty;
using (RegistryKey k1 = Registry.CurrentUser.OpenSubKey("Software", true))
{
using (RegistryKey k2 = k1.CreateSubKey(subKey))
{
object o = k2.GetValue(keyName);
if (o != null)
{
rtn = o.ToString();
}
}
}
현재 사용자 설정 > Software에서 BEOMSANG 폴더의 NAME 값을 가져옵니다.
레지스트리 GetValue의 반환 값은 오브젝트이므로 등록되지 않은 값을 읽으려고 할 때는 null을 반환합니다.
ToString 시 null 인 경우 NullReferenceException 예외가 발생할 수 있습니다.