일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ControlSend
- Var:=식
- EnvDiv
- 식의 설명
- Threads
- SetKeyDelay
- 배열
- API
- Blocks
- DetectHiddenWindows
- 식
- SetTitleMatchMode
- SetControlDelay
- if
- MouseClick
- IfWinExist
- StringGetPos
- 함수
- SetEnv
- autohotkey
- EnvMult
- IfInString
- EnvSet
- IF (식)
- EnvSub
- ControlGetText
- EnvAdd
- Menu
- if(식)
- SetMouseDelay
- Today
- Total
ㄴrㅎnㅂrㄹrㄱi
RegCreateKeyEx(A) 본문
RegCreateKeyEx(A)
지정된 레지스트리 키를 작성합니다.지정된 레지스트리 키가 벌써 존재하고 있는 경우는, 키를 오픈합니다.
LONG RegCreateKeyExA( HKEY hKey, // 키의 핸들 PCTSTR pszSubKey, // 서브 키의 이름 DWORD Reserved, // 예약(0(을)를 지정) PTSTR pszClass, // 클래스명 DWORD dwOptions, // 옵션 REGSAM samDesired, // 시큐러티 액세스 마스크 PSECURITY_ATTRIBUTES psa, // 시큐러티 속성 PHKEY phkResult, // 핸들을 격납하는 변수 PDWORD pdwDisposition );
ADVAPI32.DLL
인수
- hKey
-
현재 오픈되고 있는 키의 핸들을 지정합니다.이 핸들은 KEY_CREATE_SUB_KEY 액세스를 가지고 있지 않으면 안됩니다.
다음의 정의가 끝난 키를 지정할 수도 있습니다.
치 정의가 끝난 키 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 작성되는 키는 이 파라미터로 지정된 키의 서브 키가 됩니다.
- pszSubKey
-
작성 또는 오픈하는 서브 키의 이름을 나타내는 문자열의 주소를 지정합니다. 0 (NULL) (을)를 지정할 수 없습니다.
Windows NT/2000/XP: 서브 키의 이름을 backslash 「\」(으)로 시작해는 안됩니다.이러한 이름을 지정했을 경우는, 함수는 161 (ERROR_BAD_PATHNAME) (을)를 돌려줍니다.
Windows 95/98/Me: 서브 키의 이름이 backslash 「\」(으)로 시작되어 있는 경우는, 선두의 backslash는 무시됩니다.
- Reserved
-
예약되고 있습니다. 0 (을)를 지정하지 않으면 안됩니다.
- pszClass
-
이 키의 클래스 (오브젝트의 종류) 의 이름을 나타내는 문자열의 주소를 지정합니다.키가 벌써 존재하는 경우는 무시됩니다.현재는 어떠한 클래스도 정의되어 있지 않기 때문에, 이 파라미터에는 0 (NULL) (을)를 지정해야 합니다.
Windows 95/98/Me: 이 파라미터는 리모트 레지스트리 키 에 대해서만 사용되어 로컬 레지스트리 키에서는 무시됩니다.
Windows NT/2000/XP: 이 파라미터는 리모트 레지스트리 키와 로컬 레지스트리 키의 양쪽 모두로 서포트됩니다.
- dwOptions
-
키에 관한 특별한 옵션을 지정합니다.이하의 값의 어느쪽이든을 지정합니다.
치 의미 0x00000000(REG_OPTION_NON_VOLATILE) 이 키는 불휘발성입니다.정보는 디스크 파일에 보존되어 시스템을 재기동시 해도 정보는 없어지지 않습니다.
0x00000001 (REG_OPTION_VOLATILE) Windows NT/2000/XP: 이 키는 휘발성입니다.정보는 메모리에 격납되어 디스크 파일에는 보존되지 않기 때문에, 시스템을 재기동하면 없어집니다.지정된 이름의 키가 벌써 존재하는 경우는, 이 플래그는 무시됩니다.
Windows 95/98/Me: 이 값은 무시됩니다.이 값이 지정되었을 경우는, 불휘발성의 키가 작성됩니다.
0x00000004 (REG_OPTION_BACKUP_RESTORE) Windows NT/2000/XP: samDesired 파라미터의 액세스 지정을 무시하고, 키의 백업 또는 복원에 필요한 액세스 요구와 함께 키를 오픈합니다.호출측의 스렛드가 SE_BACKUP_NAME 특권을 가지고 있는 경우, 이 키는,ACCESS_SYSTEM_SECURITY 액세스와 KEY_READ 액세스로 오픈됩니다.호출측의 스렛드가 SE_RESTORE_NAME 특권을 가지고 있는 경우, 이 키는,ACCESS_SYSTEM_SECURITY 액세스와 KEY_WRITE 액세스로 오픈됩니다.양쪽 모두의 특권을 가지고 있는 경우, 양쪽 모두의 특권이 짜 합쳐집니다.
Windows 95/98/Me: 이 값은 무시됩니다.
- samDesired
-
오픈하는 키의 핸들의 시큐러티 액세스권을 나타내는 액세스 마스크를 지정합니다.이하의 값의 편성으로 지정합니다.
치 의미 0x0001 (KEY_QUERY_VALUE) 서브 키 데이터의 문의를 허가합니다.
0x0002 (KEY_SET_VALUE) 서브 키 데이터의 설정을 허가합니다.
0x0004 (KEY_CREATE_SUB_KEY) 서브 키의 작성을 허가합니다.
0x0008 (KEY_ENUMERATE_SUB_KEYS) 서브 키의 열거를 허가합니다.
0x0010 (KEY_NOTIFY) 변경의 통지를 허가합니다.
0x0020 (KEY_CREATE_LINK) 기호 연결의 작성을 허가합니다.
0x0100 (KEY_WOW64_64KEY) Windows XP: 64 비트 또는 32 비트 어플리케이션이, 64 비트 키를 오픈할 수 있도록 합니다.
0x0200 (KEY_WOW64_32KEY) Windows XP: 64 비트 또는 32 비트 어플리케이션이, 32 비트 키를 오픈할 수 있도록 합니다.
0x20006 (KEY_WRITE) STANDARD_RIGHTS_WRITE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY 액세스의 편성입니다.
0x20019 (KEY_READ, KEY_EXECUTE) STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY 액세스의 편성입니다.
0xF003F (KEY_ALL_ACCESS) STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, KEY_SET_VALUE 액세스의 편성입니다.
- psa
-
취득한 핸들의 child process에의 계승을 허가할지를 결정하는, SECURITY_ATTRIBUTES 구조체에의 포인터를 지정합니다. 0 (NULL) (을)를 지정하면, 핸들은 계승되지 않습니다.
Windows 95/98/Me: 이 구조체의 lpSecurityDescriptor 멤버는, 새롭게 작성되는 키의 세큐리티데스크리프타를 지정합니다. psa 멤버에 0 (NULL) (을)를 지정했을 경우는, 디폴트의 세큐리티데스크리프타가 지정됩니다.
- phkResult
-
작성 또는 오픈된 키의 핸들을 격납하기 위한 변수의 주소를 지정합니다.
이 변수에 돌려주어진 핸들이 필요없게 되면, RegCloseKey 함수를 호출해 핸들을 클로우즈 하지 않으면 안됩니다.
- pdwDisposition
-
키가 새롭게 작성되었는지를 나타내는 값을 격납하는 변수의 주소를 지정합니다.이 변수에는 이하의 값중 한쪽이 격납됩니다.
치 의미 0x00000001 (KEY_QUERY_VALUE) 지정된 키가 존재하지 않았기 때문에, 키가 새롭게 작성된 것을 나타내 보입니다.
0x00000002 (REG_OPENED_EXISTING_KEY) 지정된 키가 이미 존재하고 있어, 그 키가 오픈 연을 나타내 보입니다.
이 파라미터에 0 (NULL) (을)를 지정했을 경우는, 이 정보는 돌려주어지지 않습니다.
반환값
성공하면 0 (ERROR_SUCCESS) 하지만 돌아갑니다.
실패하면 0 이외의 에러 코드가 돌아갑니다.이 에러 코드와 FORMAT_MESSAGE_FROM_SYSTEM 플래그를 지정해 FormatMessage 함수를 호출하는 것으로, 에러 메세지를 취득할 수 있습니다.
해설
작성된 키는 값을 가지지 않습니다.값을 설정하려면 , RegSetValueEx 함수를 사용합니다.
Windows 95/98/Me: 레지스트리의 서브 키나 값의 이름은, 255 문자를 넘을 수 없습니다.
대응 정보
Windows 95 이후 / Windows NT 3.1 이후
'API 관련 > Win32 API 함수' 카테고리의 다른 글
RegDeleteValue(A) (0) | 2007.11.08 |
---|---|
RegDeleteKey(A) (0) | 2007.11.08 |
RegCloseKey (0) | 2007.11.08 |
ReadFile (0) | 2007.11.08 |
PostMessage(A) (0) | 2007.11.08 |