Contents

조회 수 15336 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
1. 레지스트리 추가
레지스트리 추가 부분에서는 위에 루트에..
abc라는 이름과 "c:winntsystem32 otepad.exe"의 데이터를 갖는것을 추가하는 예제 코드.
LONG lResult;
char buffer[100];
HKEY hKey;
DWORD dwDesc;
char *path = "c:winntsystem32
otepad.exe"; // 노트 패드 경로

// 레지스트리 열고
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    "SOFTWAREMicrosoftWindowsCurrentVersionRun",
    0, KEY_ALL_ACCESS, &hKey);

// Set Registry Key & Value
lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
    "SOFTWAREMicrosoftWindowsCurrentVersionRun",
    0, buffer, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
    NULL, &hKey, &dwDesc);

if(lResult == ERROR_SUCCESS) 
{
    RegSetValueEx(hKey, "abc", 0, REG_SZ, (BYTE*)path, strlen(path));
}

//레지스트리 닫고
RegCloseKey(hKey);

2. 레지스트리 삭제
LONG lResult;
HKEY hKey;
DWORD dwBytes=100;
CString str = "abc";

// open Regstry Key
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    "SOFTWAREMicrosoftWindowsCurrentVersionRun",
    0, KEY_ALL_ACCESS, &hKey);

if(lResult != ERROR_SUCCESS)
{
    AfxMessageBox("Register Open Error");
} 

lResult = RegDeleteValue(hKey, str);      // 삭제

if (lResult == ERROR_SUCCESS) 
    AfxMessageBox("레지스터 삭제 성공");
else 
    AfxMessageBox("실패당...ㅠㅠ");

RegCloseKey(hKey);

3. 레지스트리 읽기
LONG lResult;
HKEY hKey;
DWORD dwType;
DWORD dwBytes=100;
char buffer[100];

// open Regstry Key
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    "SOFTWAREMicrosoftWindowsCurrentVersionRun",
    0, KEY_ALL_ACCESS, &hKey);

if(lResult != ERROR_SUCCESS)
{
    AfxMessageBox("Register Open Error");
} 

// Read Regstry Key
lResult=RegQueryValueEx(hKey, "abc", 0, &dwType, (LPBYTE)buffer, &dwBytes); 

if(lResult == ERROR_SUCCESS)
    AfxMessageBox(buffer);
else        
    AfxMessageBox("Register Read Error");
      
RegCloseKey(hKey);

4. 서브 키까지 삭제 (recursive)
void SimpleApp::DeleteRegKey()
{
    HKEY m_hKey = NULL; 
    char svSubKeyBuf[MAX_PATH+1];
    long m_RetValue = ::RegOpenKeyEx(HKEY_CURRENT_USER,
            "SoftwareTest",0,KEY_ALL_ACCESS,&m_hKey);

    if(m_RetValue == ERROR_SUCCESS) // 오픈 성공하면...
    {
        RegDeleteKeyRecurse(
            HKEY_CURRENT_USER, _T("SoftwareTest"), svSubKeyBuf);
    }

    return;
}

int SimpleApp::RegDeleteKeyRecurse(HKEY hKey, LPCTSTR lpSubKey,
    char *svKeyBuf)
{
    int nCount=0;
    char svSubKeyBuf[MAX_PATH+1];
    HKEY hSubKey;

    if(RegOpenKeyEx(hKey,lpSubKey,0,KEY_ALL_ACCESS,&hSubKey)
        !=ERROR_SUCCESS) {
        return -1;
    }

    while(RegEnumKey(hSubKey,nCount,svKeyBuf,MAX_PATH)
        !=ERROR_NO_MORE_ITEMS) {
        if(RegDeleteKeyRecurse(hSubKey,svKeyBuf,svSubKeyBuf)==-1) {
            RegCloseKey(hSubKey);
            return 1;
        }
        nCount++;
    }

    RegCloseKey(hSubKey);

    RegDeleteKey(hKey,lpSubKey);

    return 0;
}



?
  • ?
    kyle 2015.09.14 19:23
    4. 서브 키까지 삭제 (recursive) 에서
    nCount++; 은 필요 없습니다.
    RegEnumKey 실행마다 알아서 돕니다.
  • profile
    hooni 2015.09.15 20:01

    댓글 감사합니다.
    근데, nCount가 포인터도 아니고 해서 RegEnumKey 에서 증가시킬 방법이 없을텐데요.
    그리고 MSDN에 보면 프로그램에서 증가시키라고 나와있습니다.

    RegEnumKey(hKey, dwIndex, lpName, cchName);
    The application should then increment the dwIndex parameter...

    [참고] https://msdn.microsoft.com/en-us/us/windows/apps/ms724861


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1077 Develop [android] 코드에서 문자열로 Resource 가져오기 hooni 2015.07.09 3948
1076 Develop [android] 해상도 관련 팁 (dip -> pixel 변환) hooni 2013.04.23 15335
1075 Develop [android] 화면 전환(가로/세로)시 설정 hooni 2013.04.23 43375
1074 PPT [android][ios] 알림(Notification) 기능에 대한 원리와 구현 방안 (APNS포함) file hooni 2013.04.23 37853
1073 Develop [android]개발 가이드 및 한글화 문서 file hooni 2013.04.23 47518
1072 System/OS [apache2] Redirect HTTP to HTTPS file hooni 2022.02.03 691
1071 Develop [api] 인스타그램 API Access_Token 발급 방법 (Instagram API) 3 file hooni 2018.04.05 7586
1070 Develop [api] 인스타그램에서 최신 이미지 가져오기 (Using Instagram API) 20 file hooni 2018.04.05 12392
1069 Develop [asem] CMOS 패스워드 알아내기.. 소스.. file hooni 2003.04.23 8696
1068 Develop [asp] 기본 문법과 제어문 hooni 2013.04.23 7076
1067 Develop [asp] 문자열 관련 함수 요약 hooni 2013.04.23 7780
1066 Develop [asp] 문자열 넘겨받기 (get,post) hooni 2013.04.23 8681
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 98 Next
/ 98