일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- if
- if(식)
- 식의 설명
- Var:=식
- Menu
- StringGetPos
- SetMouseDelay
- 함수
- API
- IfWinExist
- DetectHiddenWindows
- ControlGetText
- MouseClick
- SetKeyDelay
- IF (식)
- EnvSub
- EnvDiv
- EnvAdd
- SetTitleMatchMode
- EnvSet
- EnvMult
- Threads
- SetControlDelay
- autohotkey
- 식
- IfInString
- 배열
- Blocks
- ControlSend
- SetEnv
- Today
- Total
ㄴrㅎnㅂrㄹrㄱi
RegEnumKeyEx(A) 본문
RegEnumKeyEx(A)
지정된 레지스트리 키의 서브 키를 열거합니다.이 함수는, 불려 갈 때마다,1개의 서브 키에 관한 정보를 취득합니다.
LONG RegEnumKeyExA( HKEY hKey, // 키의 핸들 DWORD dwIndex, // 서브 키의 인덱스 PTSTR pName, // 서브 키명을 격납하는 버퍼 PDWORD pcbName, // pName 의 사이즈를 넣은 변수 PDWORD pReserved, // 예약(NULL(을)를 지정) PTSTR pClass, // 클래스명을 격납하는 버퍼 PDWORD pcbClass, // pClass 의 사이즈를 넣은 변수 PFILETIME pftLastWrite // 최종 기입 시간 );
ADVAPI32.DLL
인수
- hKey
-
현재 오픈되고 있는 키의 핸들을 지정합니다.이 핸들은 KEY_ENUMERATE_SUB_KEYS 액세스를 가지고 있지 않으면 안됩니다.
다음의 정의가 끝난 키를 지정할 수도 있습니다.
치 정의가 끝난 키 0x80000000 HKEY_CLASSES_ROOT 0x80000001 HKEY_CURRENT_USER 0x80000002 HKEY_LOCAL_MACHINE 0x80000003 HKEY_USERS 0x80000004 Windows NT/2000/XP: HKEY_PERFORMANCE_DATA 0x80000005 HKEY_CURRENT_CONFIG 0x80000006 Windows 95/98/Me: HKEY_DYN_DATA - dwIndex
-
취득하는 서브 키의 0 (으)로부터 시작되는 인덱스를 지정합니다.
- pName
-
서브 키의 이름을 격납하기 위한 버퍼의 주소를 지정합니다.이 함수는, 서브 키의 이름만을 카피합니다.계층 전체를 포함한 이름을 카피하는 것은 아닙니다.
- pcbName
-
pName 파라미터로 나타내지는 버퍼의 아르바이트수(Unicode 판의 경우는 문자수) 단위의 사이즈를 격납한 변수의 주소를 지정합니다.함수가 제어를 돌려주면, pName 파라미터의 버퍼에 카피된 문자열의 아르바이트수(Unicode 판의 경우는 문자수)가 이 변수에 격납됩니다.
- pReserved
-
예약되고 있습니다. 0 (NULL) (을)를 지정하지 않으면 안됩니다.
- pClass
-
서브 키의 클래스명을 격납하는 버퍼의 주소를 지정합니다.이 정보가 불요의 경우는 0 (NULL) (을)를 지정할 수 있습니다.현재는 어떠한 클래스도 정의되어 있지 않기 때문에, 어플리케이션은 이 파라미터를 무시해야 합니다.
- pcbClass
-
pClass 파라미터로 나타내지는 버퍼의 아르바이트수(Unicode 판의 경우는 문자수) 단위의 사이즈를 격납한 변수의 주소를 지정합니다.함수가 제어를 돌려주면, pClass 파라미터의 버퍼에 카피된 사이즈가 이 변수에 격납됩니다. pClass 파라미터에 0 (NULL) (을)를 지정했을 경우는, 이 파라미터에 0 (NULL) (을)를 지정할 수 있습니다.
- pftLastWrite
-
서브 키의 최종 기입 시간을 격납하기 위한 FILETIME 구조체의 주소를 지정합니다.
반환값
성공하면 0 (ERROR_SUCCESS) 하지만 돌아갑니다.
실패하면 0 이외의 에러 코드가 돌아갑니다.이 에러 코드와 FORMAT_MESSAGE_FROM_SYSTEM 플래그를 지정해 FormatMessage 함수를 호출하는 것으로, 에러 메세지를 취득할 수 있습니다.
해설
서브 키를 열거하려면 , 우선 dwIndex 파라미터에 0 (을)를 지정하고 나서 RegEnumKeyEx 함수를 호출합니다.이후, dwIndex 파라미터를 인크리먼트(increment)(1두개가산) 하면서 RegEnumKeyEx 함수를 호출합니다.이 조작을, 모든 서브 키가 열거될 때까지(RegEnumKeyEx 함수가 반환값 259 (ERROR_NO_MORE_ITEMS) (을)를 돌려줄 때까지) 반복합니다.
반대로, 최초의 함수 호출시에 dwIndex 파라미터에 마지막 서브 키의 인덱스를 지정해, 인덱스가 0 (이)가 될 때까지 dwIndex 파라미터를 감소(1두개감산) 하면서 함수를 호출해 갈 수도 있습니다.이 때, 마지막 서브 키의 인덱스를 취득하려면 RegQueryInfoKey 함수를 사용합니다.
지정된 레지스트리 키가 가지는 서브 키로 가장 긴 서브 키의 이름이나 클래스의 이름의 길이를 취득하려면 RegQueryInfoKey 함수를 사용합니다.
대응 정보
Windows 95 이후 / Windows NT 3.1 이후
'API 관련 > Win32 API 함수' 카테고리의 다른 글
RegFlushKey (0) | 2007.11.08 |
---|---|
RegEnumValue(A) (0) | 2007.11.08 |
RegDeleteValue(A) (0) | 2007.11.08 |
RegDeleteKey(A) (0) | 2007.11.08 |
RegCreateKeyEx(A) (0) | 2007.11.08 |