반응형
|
C# 레지스트 사용하기
C#에서 간단한 설정을 저장하는 방법은 여러가지가 있습니다. 예를 들어 레지스트를 이용하거나 ini파일, xml파일, 프로젝트 속성에 설정(Settings.seting)을 이용하는 방법입니다. 그중에서 C# 코드로 레지스트에 접근하여 간단한 설정을 읽고 쓰는 방법에 대해서 설명하겠습니다.
레지스트의 값 불러오기
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\AdManager", RegistryKeyPermissionCheck.ReadWriteSubTree);
if (regKey.GetValue("autochecked").ToString().ToLower().Equals("true"))
{
chk_auto.Checked = true;
}
else
{
chk_auto.Checked = false;
}
레지스트에 값을 읽어와서 처리합니다.
레지스트에 값을 기록합니다.
private void chk_auto_CheckedChanged(object sender, EventArgs e)
{
if (chk_auto.Checked == true)
{
//키 생성하기
RegistryKey regKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\AdManager", RegistryKeyPermissionCheck.ReadWriteSubTree);
//값 저장하기
regKey.SetValue("autochecked", "true", RegistryValueKind.String);
}
else
{
//키 생성하기
RegistryKey regKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\AdManager", RegistryKeyPermissionCheck.ReadWriteSubTree);
//값 저장하기
regKey.SetValue("autochecked", "false", RegistryValueKind.String);
}
}
값을 저장하는 방법 상세한 설명
regKey.SetValue("문자열 값", "새로운 문자열 값을 생성합니다.", RegistryValueKind.String);
regKey.SetValue("이진값", new byte[] { 41, 11, 81 }, RegistryValueKind.Binary);
regKey.SetValue("DWORD", 0x20, RegistryValueKind.DWord);
regKey.SetValue("QWORD", 0x20, RegistryValueKind.QWord);
regKey.SetValue("다중 문자열 값", new string[] { "첫행", "둘째행" }, RegistryValueKind.MultiString);
regKey.SetValue("확장 가능한 문자열 값", "이건 무한히 길게 간다는 뜻인가?", RegistryValueKind.ExpandString);
레지스트의 키와 값을 삭제합니다.
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\TestKey", RegistryKeyPermissionCheck.ReadWriteSubTree);
//값 삭제 하기
//두번째 매개변수는 존재하지 않는 값이름을 지정시 예외를 발생할것인지 여부(true:예외발생)
//regKey.DeleteValue("없는값", true); //예외 발생
regKey.DeleteValue("문자열 값", false);
regKey.DeleteValue("이진값", false);
//하위키 전체 삭제
Registry.LocalMachine.DeleteSubKey(@"SOFTWARE\TestKey");
예제 소스코드
|