티스토리 뷰

프로그래밍/MFC

레지스트리 읽고 쓰기

에어버스 2017. 3. 1. 22:52

레지스트리 문자열 읽고 쓰기

관리자 권한으로 실행되어야 한다.

 

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
41
42
43
44
45
46
47
48
    CRegKey RegKey;
    LONG lResult;
    DWORD dwSize = 10, dwSizeDrive = 5;    
 
    // 레지스트리 읽기
    lResult = RegKey.Open(HKEY_LOCAL_MACHINE, "SOFTWARE\\Stock");
    if (ERROR_SUCCESS == lResult)
    {
        lResult = RegKey.QueryStringValue(TEXT("strDrive"), m_strDrive.GetBuffer(dwSizeDrive), &dwSizeDrive);
        if (lResult != ERROR_SUCCESS)
        {
            AfxMessageBox(TEXT("드라이브명 레지스트리 읽기 실패"));
            return;
        }
        lResult = RegKey.QueryStringValue(TEXT("strDB"), m_strDB.GetBuffer(dwSize), &dwSize);
        if (lResult != ERROR_SUCCESS)
        {
            AfxMessageBox(TEXT("DB값 레지스트리 읽기 실패"));
            return;
        }
    }
    else // 읽어오기 실패하면 레지스르리 등록
    {
        lResult = RegKey.Create(HKEY_LOCAL_MACHINE, "SOFTWARE\\Stock");
        if (lResult != ERROR_SUCCESS)
        {
            AfxMessageBox(TEXT("레지스트리 생성 실패!"));
            return;
        }
        else
        {
            m_strDrive = TEXT("C");
            m_strDB = TEXT("SQLite");
            lResult = RegKey.SetStringValue(TEXT("strDrive"), m_strDrive);
            if (lResult != ERROR_SUCCESS)
            {
                AfxMessageBox(TEXT("드라이브 이름 등록 실패!"));
                return;
            }
            lResult = RegKey.SetStringValue(TEXT("strDB"), m_strDB);            
            if (lResult != ERROR_SUCCESS)
            {
                AfxMessageBox(TEXT("DB 이름 등록 실패!"));
                return;
            }
        }        
    }
    RegKey.Close();
cs

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Stock

참고>
레지스트리 문자열 저장/읽기는 SetStringValue()/QueryStringValue() 이지만,
문자열 암호화 하고 복호화 할때 에러난다. 그래서 Binary 로 저장SetBinaryValue()/QueryBinaryValue()해야 한다. 파일로 취급할때도 Binary 타입으로 해야 할듯...

Binary 로 취급할때 regedit 로 직접 레지스트리 수동 등록하는 경우, 종류는 REG_BINARY(이진값)으로 해야 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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