Contents

조회 수 15339 댓글 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


  1. [opengl] 컴퓨터 그래픽스 강의 자료(수업자료)

    Date2003.04.23 CategoryDevelop Byhooni Views20435
    Read More
  2. [android] [번역] 안드로이드 Android Cloud to Device Messaging(C2DM)

    Date2013.04.23 CategoryDevelop Byhooni Views20426
    Read More
  3. [php] substr() 한글 자를 때 깨짐 방지

    Date2014.01.09 CategoryDevelop Byhooni Views20368
    Read More
  4. [ios] UIView에서 상위 UIViewController 가져오기

    Date2013.09.27 CategoryDevelop Byhooni Views20165
    Read More
  5. [c] UTF-8을 EUC-KR로 변환.. (iconv)

    Date2013.04.23 CategoryDevelop Byhooni Views20149
    Read More
  6. [c] AES 알고리즘 (암호화/복호화)

    Date2003.04.23 CategoryDevelop Byhooni Views20047
    Read More
  7. [php] XE 에서 php 구문 사용하기 (XE 템플릿에서)

    Date2013.10.31 CategoryDevelop Byhooni Views19451
    Read More
  8. [js]모바일 웹에서 orientationchange

    Date2013.04.23 CategoryDevelop Byhooni Views19361
    Read More
  9. 모터에 대한 pid 제어.. ㅎㅎ

    Date2013.04.23 CategoryDevelop Byhooni Views18883
    Read More
  10. URI 인코딩, URL 인코딩

    Date2013.04.23 CategoryDevelop Byhooni Views18854
    Read More
  11. [ios] Objective-C에서 형식이 있는 문자열(Format Strings)에 사용할 수 있는 토큰들(Tokens)

    Date2013.04.23 CategoryDevelop Byhooni Views18788
    Read More
  12. [ios] libxml/tree.h file not found

    Date2013.08.08 CategoryDevelop Byhooni Views18711
    Read More
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 71 Next
/ 71