Programming/Windows&C#

[Windows/WinAPI] RegSetValueEx, RegCloseKey, RegDeleteValue, RegQueryValueEx

JMob 2013. 10. 24. 11:57
728x90
반응형

LONG WINAPI RegSetValueEx( _In_        HKEY hKey, ------① _In_opt_    LPCTSTR lpValueName, ------② _Reserved_  DWORD Reserved, ------③ _In_        DWORD dwType, ------④ _In_        const BYTE *lpData, ------⑤ _In_        DWORD cbData ------⑥ );


함수 설명 : 

열려있는 레지스크리 키(hKey)를 이용하여 lpValueName에 명시된 항목 이름의 데이터 형식이나 내용을 설정하는데 사용하는 함수이다. 성공시 ERROR_SUCCESS를 반환한다.


① hKey : 

현재 열어서 사용하고 있는 레지스트리 키에 대한 핸들을 명시하거나 미리 정의된 값을중 하나를 명시한다.

(RegCreateKeyEx 참고)  


② lpValueName :

정보를 설정하고자 항목의 이름을 가지고 있는 문자열의 주소를 명시한다.  (RegCreateKeyEx 참고)


③ lpReserved : 

예약된 값으로 0을 넣어 주어야 한다.


④ dwType : 

lpData에 들어있는 정보를 설정할 항목의 데이터 형식을 명시한다. 만약 해당 항목의 데이터 형식을 알지 못한다면 RegQueryValueEx함수를 이용하여 데이터 형식을 알아낼 수 있다. 


⑤ lpData

설정할 항목에 사용할 데이터가 들어있는 메모리 공간의 주소를 명시한다. 해당 데이터가 문자열 형식 (REG_SZ)라면 NULL로 끝나는 문자열이여야 하고 다중 문자열(REG_MULTISZ)형식이라면 마지막에 NULL을 두번 연속 사용해야한다.


⑥ cbData : 

lpData 매개변수에 사용한 메모리 공간의 크기를 명시한다. 만약 lpData가 문자열이라면 문자열의 크기를 보내주면 된다.





LONG WINAPI RegCloseKey(

  _In_  HKEY hKey
);


함수 설명 : 

핸들을 반납한다. (닫는다) 성공시 ERROR_SUCCESS를 반환한다.




LONG WINAPI RegDeleteValue(
  _In_      HKEY hKey,                    -----①
  _In_opt_  LPCTSTR lpValueName           -----②
);


함수 설명 : 

지정된 레지스트리 키로부터 값을 삭제한다.

① hkey : 

현재 오픈되고 있는 키를 설정한다.   (RegCreateKeyEx 참고)


② lpValueName : 

삭제하는 값의 이름을 나타내는 문자열의 주소를 지정한다. 이 파라미터에 ("")의 주소 또는 0(NULL)을 지정하면 이름 없음의 값 또는 디폴트의 값이 삭제된다.





LONG WINAPI RegQueryValueEx( _In_         HKEY hKey, ------① _In_opt_     LPCTSTR lpValueName, ------② _Reserved_   LPDWORD lpReserved, ------③ _Out_opt_    LPDWORD lpType, ------④ _Out_opt_    LPBYTE lpData, ------⑤ _Inout_opt_  LPDWORD lpcbData ------⑥ );



함수 설정 :

열려있는 레지스트리 키를 이용하여 lpValueName에 명시괸 항목의 데이터 형식이나 내용을 얻는다. 성공하면 ERROR_SUCCESS 를 반환한다.


① hKey :

현재 오픈되고 있는 키를 설정한다.   (RegCreateKeyEx 참고)


② lpValueName :

정보를 얻고자하는 항목의 이름을 가지고 있는 문자열의 주소를 명시한다. 이 문자열은 NULL로 끝나는 문자열이어야 한다.


③ lpReserved : 

예약된 값으로 0을 넣는다.


④ lpType : 

지정된 값에 저장된 데이터의 종류를 나타내는 코드를 받는 변수 포인터이다. 데이터 타입이 필요없는경우 NULL을 지정해 줄 수 있다.



  값

 유형

 REG_BINARY

 어떤 형태의 이진 데이터.

 REG_DWORD

 32 비트 숫자.

 REG_DWORD_LITTLE_ENDIAN

 리틀 엔디안 형식의 32 비트 숫자.

 창은 리틀 엔디안 컴퓨터 아키텍처에서 실행되도록 설계되었습니다

 따라서,이 값은 Windows 헤더 파일에있는 REG_DWORD로 정의됩니  다.

 REG_DWORD_BIG_ENDIAN

 빅 엔디안 형식의 32 비트 숫자.

 일부 UNIX 시스템은 빅 엔디안 아키텍처를 지원합니다.

 REG_EXPAND_SZ

 환경 변수 (예를 들어, "% 경로 %")로 확장되지 않은 참조를 포함 null로 끝나는 문자열입니다. 그것은 당신이 유니 코드 또는 ANSI 함수를 사용 하는지 여부에 따라 유니 코드 또는 ANSI 문자열이됩니다. 환경 변수

참조를 확장하려면 사용ExpandEnvironmentStrings의 기능을.

 REG_LINK

 호출에 의해 생성 된 심볼릭 링크의 대상 경로를 포함하는 null로 끝나는

유니 코드 문자열 RegCreateKeyEx REG_OPTION_CREATE_LINK과 기능을

 REG_MULTI_SZ

 빈 문자열 (\ 0)로 종료 null로 끝나는 문자열의 순서

 REG_NONE

 이 정의 값을 입력합니다.

 REG_QWORD

 64 비트 숫자입니다.

 REG_QWORD_LITTLE_ENDIAN 리틀 엔디안 형식의 64 비트 숫자입니다.
 REG_SZ null로 끝나는 문자열입니다. 이것은 유니 코드 또는 ANSI 함수를 사용하는 여부에 따라 하나 유니 코드 또는 ANSI 문자열이어야합니다.


⑤ lpData :

항목의 값이 저장될 메모리 공간의 주소를 명시한다. 만약, 항목의 내용이 필요 없다면 NULL을 명시한다.


⑥ lpcdData :

lpData 매개변수에 사용한 메모리 공간의 크기를 기록할 변수의 주소를 명시한다. 

728x90
반응형