코딩 ( 프로그래밍 )/C# 응용

[C#] 레지스트리에 값 저장 및 읽기

IDMango 2020. 7. 30. 15:32

 

   레지스트리란?

 

 - 윈도우 레지스트리는 마이크로소프트 윈도우 운영체제의 설정에 관련된 항목을 저장하고 있는 데이터베이스입니다.

   여기에 자신의 앱에서 사용하는 설정값들을 저장/읽기를 할수 있습니다.

 

   레지스트리에 값 저장

 

- 저장하고자 하는 Key / Value 로 입력하여 저장

public static void Sub_레지스트리저장(string strKEY, string strValue)
{
    string str레지스트리_경로 = "Software\\myApp";
 
    RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(str레지스트리_경로, true);
 
    if (RegKey == null)
    {
        RegistrySecurity userSecurity = new RegistrySecurity();
        RegistryAccessRule userRule = new RegistryAccessRule("Everyone", RegistryRights.FullControl, AccessControlType.Allow);
        userSecurity.AddAccessRule(userRule);
        RegKey = Registry.CurrentUser.CreateSubKey(str레지스트리_경로, RegistryKeyPermissionCheck.ReadWriteSubTree, userSecurity);
    }
 
    RegKey.SetValue(strKEY, strValue);
}
cs

 

   레지스트리의 Key값 읽기

 

 - Key에 해당하는 Value 값 읽기

public static string Sub_레지스트리로딩(string strKEY)
{
    string strPath = "";
 
    string str레지스트리_경로 = "Software\\myApp";
    try
    {
        RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(str레지스트리_경로, true);
        strPath = RegKey.GetValue(strKEY, "").ToString();
 
        if (RegKey == null)
        {
            RegistrySecurity userSecurity = new RegistrySecurity();
            RegistryAccessRule userRule = new RegistryAccessRule("Everyone", RegistryRights.FullControl, AccessControlType.Allow);
            userSecurity.AddAccessRule(userRule);
            RegKey = Registry.CurrentUser.CreateSubKey(str레지스트리_경로, RegistryKeyPermissionCheck.ReadWriteSubTree, userSecurity);
        }
    }
    catch { }
 
 
    return strPath;
}
cs

 

   사용예

 

 - 저장/ 읽기

 

Sub_레지스트리저장(Application.ProductName, "langu""ko");

string strLangu = Sub_레지스트리로딩(Application.ProductName, "langu");
cs