ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 레지스트리 관리기능 클래스 예제 코드
    업무용 소스 예제 2021. 8. 21. 15:37
    728x90
    반응형
    728x90

    레지스트리 관리기능 클래스 예제 코드

     

    읽고, 쓰고 및 삭제 기능

     

    public sealed class RegManager
        {
            public static bool DeleteRegKey(string KeyString, string KeyName)
            {
                bool flag;
                try
                {
                    if (Environment.Is64BitOperatingSystem)
                    {
                        RegistryKey localMachine64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
                        localMachine64.OpenSubKey(KeyString, true).DeleteValue(KeyName);
                        localMachine64.Close();
                    }
                    else
                    {
                        Registry.LocalMachine.OpenSubKey(KeyString, true).DeleteValue(KeyName);
                        Registry.LocalMachine.Close();
                    }
                    flag = true;
                }
                catch (Exception ex)
                {
                      TraceManager.AddLog(ex.Message + ex.StackTrace);
                    flag = false;
                }
                return flag;
            }
    
            public static object ReadRegKey(string KeyString, string KeyName, object DefaultValue)
            {
                object objectValue;
                try
                {
                    if (Environment.Is64BitOperatingSystem)
                    {
                        RegistryKey localMachine64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
                        objectValue = RuntimeHelpers.GetObjectValue(localMachine64.CreateSubKey(KeyString).GetValue(KeyName));
                        if (objectValue == null)
                        {
                            localMachine64.CreateSubKey(KeyString).SetValue(KeyName, RuntimeHelpers.GetObjectValue(DefaultValue));
                            objectValue = RuntimeHelpers.GetObjectValue(DefaultValue);
                        }
                        localMachine64.Close();
                    }
                    else
                    {
                        objectValue = RuntimeHelpers.GetObjectValue(Registry.LocalMachine.CreateSubKey(KeyString).GetValue(KeyName));
                        if (objectValue == null)
                        {
                            Registry.LocalMachine.CreateSubKey(KeyString).SetValue(KeyName, RuntimeHelpers.GetObjectValue(DefaultValue));
                            objectValue = RuntimeHelpers.GetObjectValue(DefaultValue);
                        }
                        Registry.LocalMachine.Close();
                    }
                }
                catch (Exception ex)
                {
                      TraceManager.AddLog(ex.Message + ex.StackTrace);
                    objectValue = DefaultValue;
                }
                return objectValue;
            }
    
            public static bool WriteRegKey(string KeyString, string KeyName, object KeyValue)
            {
                bool flag;
                try
                {
                    if (Environment.Is64BitOperatingSystem)
                    {
                        RegistryKey localMachine64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
                        localMachine64.CreateSubKey(KeyString).SetValue(KeyName, RuntimeHelpers.GetObjectValue(KeyValue));
                        localMachine64.Close();
                    }
                    else
                    {
                        Registry.LocalMachine.CreateSubKey(KeyString).SetValue(KeyName, RuntimeHelpers.GetObjectValue(KeyValue));
                        Registry.LocalMachine.Close();
                    }
                    flag = true;
                }
                catch (Exception ex)
                {
                     TraceManager.AddLog(ex.Message + ex.StackTrace);
                    flag = false;
                }
                return flag;
            }
        }
    728x90
    반응형

    댓글

Designed by Tistory.