본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

[ WPF & C# (C Sharp)] - REG ( regstry / 레지스트리 / 레지 )

728x90
반응형

[ WPF & C# (C Sharp) ] - REG에 읽기 / 쓰기 / 지우기 ( 삭제하기 )



 @ REG에 읽기 / 쓰기 / 지우기 ( 삭제하기 )

레지스트리에 값을 입력하기 편하도록 조금 수정해 보았다.



@ cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
        #region // 펑션 레지스트리 가져오기 및 쓰기
        // Reg_Read
        private string Reg_Read(string rPath, string rKey)
        {
            RegistryKey reg = Reg_Category(rPath);
            reg = reg.OpenSubKey(rPath.Substring((rPath.IndexOf("\\"+ 1), rPath.Length - (rPath.IndexOf("\\"+ 1)), true);
            if (reg == nullreturn "";
            else return Convert.ToString(reg.GetValue(rKey));
        }
 
        // Reg_Write
        private void Reg_Write(string rPath, string rKey, string rVal, RegistryValueKind rKnd) // 키, 값, 종류
        {
            RegistryKey reg = Reg_Category(rPath);
            reg = reg.CreateSubKey(rPath.Substring((rPath.IndexOf("\\"+ 1), rPath.Length - (rPath.IndexOf("\\"+ 1)), RegistryKeyPermissionCheck.ReadWriteSubTree);
            reg.SetValue(rKey, rVal, rKnd);
            reg.Close();
        }
 
        // Reg_Del
        private void Reg_Del(string rPath, string rKey, string rVal) // 키, 값, 종류
        {
            RegistryKey reg = Reg_Category(rPath);
            reg = reg.OpenSubKey(rPath.Substring((rPath.IndexOf("\\"+ 1), rPath.Length - (rPath.IndexOf("\\"+ 1)), true);
            if (reg != null) reg.DeleteValue(rKey);
        }
 
        // Reg_Category
        private RegistryKey Reg_Category(string rPath)
        {
            RegistryKey reg = null;
            if (rPath.StartsWith("HKEY_CLASSES_ROOT")) reg = Registry.ClassesRoot;
            if (rPath.StartsWith("HKEY_CURRENT_USER")) reg = Registry.CurrentUser;
            if (rPath.StartsWith("HKEY_LOCAL_MACHINE")) reg = Registry.LocalMachine;
            if (rPath.StartsWith("HKEY_USERS")) reg = Registry.Users;
            if (rPath.StartsWith("HKEY_CURRENT_CONFIG")) reg = Registry.CurrentConfig;
            return reg;
        }
        #endregion
 
cs



 @ ...

이렇게 만들어 놓으면 무지 편할줄 알았다...

근데... 그닥 편하지 않다. ㅠㅠ

레지 1~2개 시에도 그냥 그렇고, 대량 등록 시에도 그냥 그렇다.

참 애매하고, 이상한 코드다.

다음에 시간 날 때 정리 함 해봐야 되겠다.

어디 좋은 소스 아시는분~





http://insurang.tistory.com


728x90
반응형