일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 크로스오버
- 단 벌란
- 유로댄스
- 몰도바
- o-zone
- POP
- Arsenie Todiraş
- Windows DDK
- WinAPI
- Maksim
- 아르세니에 토디라슈
- 해외 여행
- Radu Sârbu
- input method editor
- API
- ime
- Romanian
- Euro-Dance
- 라두 스르부
- Jr
- Dan Balan
- 막심 므라비차
- Moldovan
- c언어
- 철도
- Disc O-Zone
- Windows API
- 루마니아어
- 일본 여행
- windowsAPI
- Today
- 204
- Total
- 1,073,377
(코딩캣) = "코딩"하는 고양이;
기능별로 묶어보는 레지스트리 함수 – 5편. 값의 조회/추가/수정/삭제 본문
기능별로 묶어보는 레지스트리 함수 – 5편. 값의 조회/추가/수정/삭제
컴파일러님, 이 코드는 고양이발로 작성되었습니다. 코딩집사 2011. 2. 6. 14:26기능별로 묶어보는 레지스트리 함수.
5편. 값의 조회/추가/수정/삭제
- by Tapitolife
기본 값을 다뤄 보았다면 이제 이름을 갖는 다양한 형식의 값을 다뤄봅니다.
— RegEnumValue
지정한 키가 가지고 있는 모든 값의 이름들을 가져옵니다.
LONG WINAPI RegEnumValue( |
○ hKey: 값들의 이름을 조회할 키 자체에 대한 핸들입니다.
○ dwIndex: 0부터 1씩 증가하는 인덱스입니다.
○ lpValueName: 값의 이름을 담아 올 문자열 버퍼입니다.
○ lpcchValueName: 버퍼 lpValueName의 크기가 입력됩니다. (단위: 글자)
○ lpReserved: 항상 NULL입니다.
○ lpType: 형식을 담아 올 버퍼입니다. 값의 형식은 필요 없다면 NULL입니다.
○ lpData: 값을 담아 올 버퍼입니다. 값이 필요 없다면 NULL입니다.
○ lpcbData: 값의 크기가 내보내기 됩니다. 문자열 형식이라면 단위는 글자가 되고, 그 외에는 바이트가 됩니다.
— RegGetValue
지정된 이름을 갖는 값을 가져옵니다.
LONG WINAPI RegGetValue( |
○ hKey: 값을 가져올 키 자체, 또는 그 키의 상위 키에 대한 핸들입니다.
○ lpSubKey: hKey에 상위 키를 지정했다면, 여기에는 처리할 서브키의 이름을 명시합니다.
○ lpValue: 값의 이름입니다.
○ dwFlags: 가져오기 옵션입니다. 주로 가져올 값의 형식을 제한하는 조건을 부여하는데,
이에 부합되지 않을 경우 에러를 반환합니다. 옵션을 아래 표의 상수 중에 선택합니다.
이름 |
값 |
설명 |
RRF_RT_ANY |
0x0000FFFF |
아무 제한이 없습니다. |
RRF_RT_DWORD |
0x00000018 |
가져올 값을 32비트 정수로 제한합니다. |
RRF_RT_QWORD |
0x00000048 |
가져올 값을 64비트 정수로 제한합니다. |
RRF_RT_REG_BINARY |
0x00000008 |
가져올 값을 REG_BINARY로 제한합니다. |
RRF_RT_REG_DWORD |
0x00000010 |
가져올 값을 REG_DWORD로 제한합니다. |
RRF_RT_REG_EXPAND_SZ |
0x00000004 |
가져올 값을 REG_EXPAND_SZ로 제한합니다. |
RRF_RT_REG_MULTI_SZ |
0x00000020 |
가져올 값을 REG_MULTI_SZ로 제한합니다. |
RRF_RT_REG_NONE |
0x00000001 |
가져올 값을 REG_NONE으로 제한합니다. |
RRF_RT_REG_QWORD |
0x00000040 |
가져올 값을 REG_QWORD로 제한합니다. |
RRF_RT_REG_SZ |
0x00000002 |
가져올 값을 REG_SZ로 제한합니다. |
이 상수와 더불어 다음 상수를 논리 합하여 지정할 수 있습니다.
이름 |
값 |
설명 |
RRF_NOEXPAND |
0x10000000 |
형식이 REG_EXPAND_SZ일 때 자동 확장하지 않습니다. |
RRF_ZEROONFAILURE |
0x20000000 |
가져오기에 실패했고, pvData 버퍼가 NULL이 아닐 때, |
— RegSetValueEx
지정된 이름을 갖는 값을 설정합니다. 없으면 새로 만듭니다.
LONG WINAPI RegSetValueEx( |
○ hKey: 다룰 키에 대한 핸들입니다.
○ lpValueName: 다룰 값의 이름입니다.
○ Reserved: 그냥 0을 입력합니다.
○ dwType: 값의 형식을 지정합니다.
○ lpData: 레지스트리에 저장할 값입니다.
○ cbData: 바이트 단위의 값의 크기(문자열인 경우 NULL까지 포함해서)입니다.
— RegDeleteValue
지정된 이름을 갖는 값을 제거합니다.
LONG WINAPI RegDeleteValue( |
○ hKey: 다룰 키에 대한 핸들입니다.
○ lpValueName: 제거할 값의 이름입니다.
'Application Programming Interface > Windows API' 카테고리의 다른 글
갈아 만든 Windows API - #2. 창 배경색 수정하기 (0) | 2011.08.15 |
---|---|
갈아만든 Windows API - #1. 도스와는 많이 다른 윈도우 프로그램 (0) | 2011.08.15 |
기능별로 묶어보는 레지스트리 함수 – 5편. 값의 조회/추가/수정/삭제 (3) | 2011.02.06 |
기능별로 묶어보는 레지스트리 함수 – 4편. 기본값의 조회/수정 (0) | 2011.01.30 |
기능별로 묶어보는 레지스트리 함수 – 3편. 키의 조회/생성/삭제 (0) | 2011.01.29 |
기능별로 묶어보는 레지스트리 함수 – 2편. 키의 열기/닫기 (0) | 2011.01.29 |
-
유현욱 2013.07.16 23:20 질문 하나 드릴께요.
RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Internet Explorer\\Main"), &hKey);
RegSetValueEx(HKEY_LOCAL_MACHINE, TEXT("Start Page"), 0, REG_SZ, TEXT("http://www.naver.com"), 0);
이렇게 코딩을 한후 실행을 하면 실행은 됩니다. 반환되는값도 성공했을때 나오는 값과 같아요.
근데 제가 지정한 키에 이름의 값이 변하지 않고 HKEY_LOCAL_MACHINE 에 아무 값도 없이 제가 지정한 이름이 생성이 됩니다. 어떻게 해야 될까요? 답변 부탁드립니다^^ -
컴파일러님, 이 코드는 고양이발로 작성되었습니다. 코딩집사 2013.07.19 21:31 신고 코드의 일부만 봐서는 모르겠습니다만
UAC 기능 때문에 관리자 모드로 실행해야 결과가 나타날 수 있는 경우도 있고요
RegSetValueEx 호출 부분이 좀 이상합니다.
문맥상 첫 번째 인자로 hKey가 들어가야 할 것 같은데
HKLM을 넣으면
실행 결과가 HKLM\SOFTWARE\Microsoft...가 아니라
HKLM\Start Page의 값에 텍스트가 설정됩니다. -
유현욱 2013.07.21 20:11 답변감사합니다^^ 설명해주시니 이해가 가네요.