레지스트리키를 만들어주는 API


RegCreateKeyEx( hKey,lpKey,0,NULL,REG_OPTION,KEY_OPTION,NULL,&key,NULL);


hKey : 생성할 키의 루트키이다.

lpKey : 생성할 서브키(문자열)

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

+ Recent posts