기능별로 묶어보는 레지스트리 함수.
3편. 키의 조회/생성/삭제
- by Tapitolife
(이 포스팅은 다음과 같은 사이트를 참고하여 작성되었습니다.)
MSDN Registry Functions (Windows):
http://msdn.microsoft.com/en-us/library/ms724875(v=VS.85).aspx
키를 열고 닫아 보았다면, 이제 그 사이에 뭔가를 해 봐야겠죠. ㅋㅋ
이번에는 서브키들의 목록을 조회하고, 생성/삭제를 해 봅니다.
— RegEnumKey
지정한 키의 서브키들을 조회합니다.
LONG WINAPI RegEnumKey( |
○ hKey: 서브키를 조회할 대상 키입니다.
○ dwIndex: 몇 번째 서브키의 이름을 가져올 것인지를 지정합니다.
0부터 시작해서 1씩 더해진 값이어야 합니다.
○ lpName: 서브키의 이름을 담아 올 문자열 버퍼입니다.
미리 충분한 크기로 할당 되어 있어야 합니다.
○ cchName: lpName버퍼의 길이(단위: 문자)입니다.
▶ 반환: 해당 번호의 서브키 이름을 가져오는 데 성공하면 ERROR_SUCCESS,
더 이상 서브키가 없다면 ERROR_NO_MORE_ITEMS를 반환합니다.
그 외의 값들은 모두 winerror.h에 정의되어 있습니다.
— RegCreateKey
지정한 키의 서브키로 새 키를 만듭니다.
LONG WINAPI RegCreateKey( |
○ hKey: 서브키를 만들 대상 키 입니다.
○ lpSubKey: 새 서브키의 이름입니다.
○ phkResult: 새로 만들어진 서브키에 대한 핸들을 얻어 옵니다.
▶ 반환: 성공하면 ERROR_SUCCESS를 반환 합니다.
그 외의 값에 대해서는 모두 winerror.h에 선언되어 있습니다.
★ 사용법:
"HKLM\Software\Tapito" 키를 만들고 싶다면?
HKEY hKey, hNewKey; RegCreateKey(hKey, TEXT("Tapito"), &hNewKey); |
— RegDeleteKey
지정한 키의 서브키를 지웁니다. 이 때, 지울 서브키 안에는 또 다른 서브키가 없어야 합니다.
LONG WINAPI RegDeleteKey( |
○ hKey: 삭제할 키가 있는 상위 키입니다.
○ lpSubKey: 삭제할 키의 이름입니다.
▶ 반환: 성공하면 ERROR_SUCCESS를 반환 합니다.
그 외의 값에 대해서는 모두 winerror.h에 선언되어 있습니다.
이 3개의 함수로 다음과 같은 예제를 만들어 볼 수 있습니다.
파일명: regtest2.c |
#include <windows.h> printf("계속하려면 아무 키나 누르세요.\n"); _getch(); |
이 소스는 다음과 같은 결과를 출력합니다. (환경에 따라 결과가 다를 수 있습니다.)
- 1번 출력 결과
- 2번 출력 결과
지정된 위치에 잘 생성 되었습니다.
- 3번 출력 결과
지정한 위치의 키를 잘 제거 했습니다.
마지막으로…
'Application Programming Interface > Windows API' 카테고리의 다른 글
갈아만든 Windows API - #1. 도스와는 많이 다른 윈도우 프로그램 (0) | 2011.08.15 |
---|---|
기능별로 묶어보는 레지스트리 함수 – 5편. 값의 조회/추가/수정/삭제 (3) | 2011.02.06 |
기능별로 묶어보는 레지스트리 함수 – 4편. 기본값의 조회/수정 (0) | 2011.01.30 |
기능별로 묶어보는 레지스트리 함수 – 2편. 키의 열기/닫기 (0) | 2011.01.29 |
기능별로 묶어보는 레지스트리 함수 – 1편. 완전 간단 레지스트리 소개 (0) | 2011.01.29 |