본문 바로가기

프로그래밍/C#

[C#] 레지스트리 읽기 | 쓰기(Registry Read | Write)

반응형


다운로드 - Visual Studio2010 에서 작성


[C#] 레지스트리 읽기 | 쓰기(Registry Read | Write)

레지스트리에 접근하여 해당 경로를 읽고 경로에 키를 생성해 보도록 하겠습니다.

윈도우에 에서 레지스트리를 실행하려면 실행-> regedit를 입력하면 됩니다.

<Registry Editor>


이번 예제는 LOCAL_CURRENT_USER에 있는 Software에 폴더를 만들어 보겠습니다.

ATEST라는 폴더가 없는 경우 ATEST라는 폴더를 생성하게 됩니다.


다시 아래 코드대로 실행을 하면 ATEST라는 폴더아래 ATEST2라는 폴더가 생성되고 String 타입의 File이라는 키가 생성 됩니다.


.OpenSubKey("경로", writable) 에서 wirtable를 true로 변경해야 해당 경로에 키 생성이 가능합니다.



소스코드

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using Microsoft.Win32;


namespace TestString

{

    class Program

    {

        static void Main(string[] args)

        {

            RegistryKey rkey = Registry.CurrentUser.OpenSubKey(@"Software", true);

            

            if (rkey == null)

            {

                //경로에 키가 없는 경우.

                Console.WriteLine("rkey is null.");

            }

            else

            {

                //경로에 있는 모든 하위 키 이름을 가져온다.

                string[] subKeynames = rkey.GetSubKeyNames();


                try

                {

                    //TEXT라는 키(폴더)가 있는지 확인

                    RegistryKey StOPCKey = rkey.OpenSubKey("ATEST", true);

                        

                    if (StOPCKey == null)

                    {

                        //없으면 ATEST라는 키(폴더)를 생성 

                        rkey.CreateSubKey("ATEST", RegistryKeyPermissionCheck.Default);

                    }

                    else

                    {

                        //있으면 ATEST라는 폴더안에 ATEST2라는 키(폴더)를 생성한다.

                        //그리고 string 타입의 키를 생성

                        StOPCKey.CreateSubKey("ATEST2", RegistryKeyPermissionCheck.Default).SetValue("File","TEST",RegistryValueKind.String);

                    }                    

                }

                catch (Exception ex)

                {

                    Console.WriteLine(ex.Message);

                }

            }           

        }

    }

}