레지스트리 키 생성 예제
01: // 예를 들어 HKEY_LOCAL_MACHINE밑의 System\CurrentControlSet\Services\GenPort라는 키를 02: // 생성하고 거기에 DWORD 타입의 값으로 Type을 만들고 문자열 타입의 값으로 Group 03: // 을 만들어 본다. 04:
05: #include "winreg.h"
06: LONG error = 0;
07: HKEY hKey;
08: DWORD dwDisp, dwData;
09: char lpData[] = "Write this down";
10:
11: // 먼저 만들려는 키가 이미 존재하는 것인지 살펴본다. 12:
13: error = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Services\\GenPort",
14: 0, KEY_ALL_ACCESS, &hKey);
15:
16: if (error != ERROR_SUCCESS) // 없다면 새로 생성한다. 17: {
18: // 키를 생성한다. 19:
20: error = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
21: "System\\CurrentControlSet\\Services\\GenPort", 0, "REG_BINARY",
22: REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &dwDisp);
23:
24: // 위의 키 밑에 Type이란 DWORD 타입의 값을 만들고 1로 초기화 25:
26: dwData = 0x1;
27: error = RegSetValueEx( hKey, "Type", 0, REG_DWORD,&dwData,4);
28:
29: // 위의 키 밑에 Group이란 문자열 타입의 값을 만들고 lpData의 값으로 초기화 30:
31: error = RegSetValueEx( hKey, "Group", 0, REG_SZ, lpData, strlen(lpData));
32:
33: // 키를 닫는다. 34:
35: RegCloseKey(hKey);
36: }
기존의 레지스트리 키에서 값 읽기
01: // HKEY_CURRENT_USER\Software\Netscape\Netscape Navigator\Main 밑의 Install Directory 02: // 값의 문자열 값을 읽어들인다. 03:
04: DWORD dwType, cbData;
05: HKEY hSubKey;
06: long lRet;
07: char pszString[255];
08:
09: // 키를 오픈한다. 10:
11: if ((lRet = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Netscape\\Netscape Navigator\\Main",
12: 0, KEY_READ | KEY_QUERY_VALUE , &hSubKey)) == ERROR_SUCCESS)
13: {
14: cbData = 255; // 문자열 값을 읽어올 데이터의 크기를 준다. 15:
16: if ((lRet = RegQueryValueEx(hSubKey, "Install Directory",
17: NULL, &dwType, pszString, &cbData)) == ERROR_SUCCESS)
18: {
19: // 제대로 읽힌 경우 20: }
21: else
22: {
23: // 에러가 발생한 경우 24: }
25: RegCloseKey(hSubKey);
26: }
'CMD BAT 인스톨' 카테고리의 다른 글
레지수정방법 (5) | 2018.11.04 |
---|---|
cmd 명령어 (0) | 2018.11.04 |
NSIS 예문 파일 (0) | 2018.02.07 |
NSIS 번외 - 레지스트리 (0) | 2018.02.07 |
NSIS sample script. (0) | 2018.02.07 |
최근댓글