본문 바로가기
개발언어/C#.NET

C# 레지스트 읽기 쓰기 지우기 C# regedit

by 엔돌슨 2011. 6. 29.
반응형

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");




예제 소스코드