Contents

조회 수 14906 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1173 Develop '2014 모바일 개발 트렌드' 발표자료입니다. file hooni 2014.10.02 974
1172 System/OS Apache CORS 설정 1 hooni 2020.09.04 2689
1171 Develop Aspect Oriented Programming in Objective-C hooni 2015.05.18 672
1170 System/OS asx미디어 정보 기록.. hooni 2003.04.23 20533
1169 System/OS CentOS 6.5 USB 설치 6 file hooni 2013.12.18 37668
1168 System/OS CentOS 에서 Cacti 설치하기 hooni 2015.01.02 1755
1167 System/OS Configure Postfix to Use Gmail SMTP on Ubuntu 18.04 file hooni 2020.02.07 1230
1166 Develop DDay Memo 1.9.4 소스코드 secret hooni 2015.10.03 0
1165 Etc EBS [수학영역] 미적분과 통계 기본 - 정규분포의 의미와 특징은? hooni 2015.04.20 1000
1164 System/OS Enable Safari Hidden Debug Menu in Mac OS X file hooni 2017.02.07 1130
1163 System/OS Enable the Develop Menu in Safari file hooni 2017.02.07 1058
1162 Develop GCM 사용하기 2 (단말에 GCM 구현하기) file hooni 2013.07.06 23248
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98