레지스트리키를 만들어주는 API
RegCreateKeyEx( hKey,lpKey,0,NULL,REG_OPTION,KEY_OPTION,NULL,&key,NULL);
hKey : 생성할 키의 루트키이다.
lpKey : 생성할 서브키(문자열)
0
NULL : 키의 지정된 클래스명,보통 NULL
REG_OPTION : REG_OPTION_NON_VOLATILE, REG_OPTION_VOLATILE 중에 선택할 수 있는데 전자는 정보를 파일에 기록한다는 의미이고, 후자는 시스템종료시 기록을 지우겠다는 의미이다. 보통 전자를 선택함.
KEY_OPTION : KEY_WRITE , KEY_ALL_ACCESS , KEY_READ 바로 눈에 보이겠지만, WRITE는 쓰기에 관한 모든권한, 가운데는 모든권한, READ는 읽기와 관련된 모든권한을 설정한다는 의미이다.
NULL : SECURITY_ATTRIBUTES 구조체 포인터 ,보통 NULL
&key : 생성된 키의 핸들포인터
NULL : DWROD포인터 보통 NULL
여기서 루트키에 대해서 잠깐 살펴보고 넘어가자.
루트키란 , 실행창에서 regedit을 치고 들어가면
위와 같은 창을 볼 수 있다. 내컴퓨터 하위항목들이 루트키에 해당함.
(각 루트키에는 서브키를 가지고 있다.)
HKEY_CLASSES_ROOT
윈도우에 사용하는 프로그램과 각 프로그램에 연결된 확장명에 대한 정보, 단축키,드래그 앤 드롭, 윈도우의 관련된 정보가 저장.
HKEY_CURRENT_USER
사용자가 설정한 윈도우 환경에 대한 정보가 저장
HKEY_LOCAL_MACHINE
컴퓨터에 설치된 하드웨어와 소프트웨어에 관련된 모든 설정 내용이 저장. 특히 하드웨어와 하드웨어를 구동시키는 드라이버와 설정 사항에 대한 정보가 저장.
HKEY_USERS
HKEY_CURRENT_USER에 저장된 정보 전체와 데스크탑 설정, 네트워크 연결등의 정보가 저장되어있다.
HKEY_CURRENT_CONFIG
HKEY_LOCAL_MACHINE 키의 하위키인 Config키의 내용을 담고 있다.
열려있는 레지스트리 키를 이용하여 명시된 항목이름의 데이터 형식이나 내용을 설정하는 사용
RegSetValueEx(HKEY hKey,LPCTSTR lpValueName,DWORD lpReserved, DWORD dwType, const BYTE *lpData, DWORD cbData);
hKey : 현재 열어서 사용하고 있는 레지스트리 키에 대한 핸들
lpValueName : 정보를 설정하고자 하는 항목의 이름을 가지고 있는 문자열의 주소 명시.
lpReserved : 0으로 예약.
dwType : lpData에 들어있는 정보를 설정할 항목의 데이터 형식을 명시,
REG-BINARY : 이진값으로 구성된 데이터 형식
REG_DWORD : 32비트 크기의 정수 데이터 형식
REG_DWORD_LITTLE_ENDIAN :32비트 크기정수(바이트정렬little endian)
REG_DWORD_BIG_ENDIAN : 32비트 크기정수(바이트정렬 big endian)
REG_SZ : NULL로 끝나는 문자열 형식
REG_MULTI_SZ : NULL로 끝나는 문자열이 나열되어 있는 형식
종결시에는 NULL을 두번.
REG_EXP_AND_SZ : NULL로 끝나는 문자열형식,환경변수참조가능
REG_RESOURCE_LIST : 장치드라이버의 자원목록에 관련된 형식
REG_NONE : 데이터 형식이 정해져 있지 않은 경우
lpData : 설정할 항목에 사용할 데이터가 들어있는 메모리 공간의 주소를 명시.
cbData : lpData 매개변수에 사용한 메모리 공간의 크기를 명시.
'System > Windows' 카테고리의 다른 글
Message HOOK - Window (0) | 2012.08.20 |
---|---|
CreateProcess (2) | 2012.08.03 |
파일복사 api (0) | 2012.08.02 |
WinApi MessageBox (0) | 2012.07.26 |
CreateWindow (0) | 2012.07.26 |