Develop
2013.04.23 15:43
[c++] mfc 기반 레지스트리(registry) 컨트롤 예제 코드
Views 15383 Comment 2
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; }
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
697 | Develop | [c] 네트워크 정보 알아보기 | hooni | 2013.04.23 | 16164 |
696 | Develop | [ios] APNS 클라이언트 구현 (pdf) | hooni | 2013.06.27 | 15842 |
695 | Develop | OGNL(Object Graph Navigation Language) | hooni | 2013.04.23 | 15792 |
694 | Develop | [c] 윈도우 API sin 함수 출력.. | hooni | 2013.04.23 | 15690 |
693 | Develop | [ios] UI컨트롤러 샘플코드 | hooni | 2013.08.08 | 15490 |
692 | Develop | [js] 수학 공식을 제공하는 Math 객체 | hooni | 2013.04.23 | 15440 |
» | Develop | [c++] mfc 기반 레지스트리(registry) 컨트롤 예제 코드 2 | hooni | 2013.04.23 | 15383 |
690 | Develop | [android] 해상도 관련 팁 (dip -> pixel 변환) | hooni | 2013.04.23 | 15370 |
689 | Develop | [java] 입출력 스트림 1부 (문자) | hooni | 2013.04.23 | 15359 |
688 | Develop | [erp] SAP 모듈 요약 | hooni | 2013.04.23 | 15336 |
687 | Develop | [js] 간단한 게임 프로토타입 (HTML5 와는 무관) | hooni | 2013.04.23 | 15191 |
686 | Develop | [c] GD라이브러리(jpeg)를 사용한 웹 카운터 샘플 | hooni | 2013.04.23 | 15132 |