반응형
레지스트리 키 생성
■ RegCreateKeyEx
레지스트리 키를 만들거나 키가 이미 있는 경우 값을 읽을 수 있도록 키를 여는 함수입니다.
🔽 함수 형식 및 파라미터 참고
https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regcreatekeyexw
※ Sample Code
HKEY hKey = NULL;
DWORD dwDisposition;
if (RegCreateKeyEx(HKEY_CURRENT_USER, // 키
_T("SOFTWARE\\Dev"), // 경로
0, NULL,
REG_OPTION_NON_VOLATILE, // 비휘발성, 재부팅해도 값 보존
KEY_WRITE, NULL,
&hKey, &dwDisposition) == ERROR_SUCCESS)
{
// 성공
}
RegCloseKey(hKey);
레지스트리 값 저장
■ RegSetValueEx
레지스트리 키 아래에 지정된 값의 데이터 및 유형을 설정하는 함수입니다.
🔽 함수 형식 및 파라미터 참고
https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regsetvalueexw
※ Sample Code
HKEY hKey = NULL;
DWORD dwDisposition;
if (RegCreateKeyEx(HKEY_CURRENT_USER,
_T("SOFTWARE\\Dev"), 0,
NULL, REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL,
&hKey, &dwDisposition) == ERROR_SUCCESS)
{
// CString 값 저장
CString sValue1 = _T("Value1");
CString sData = _T("data");
if (RegSetValueEx(hKey, sValue1, 0, REG_SZ,
(CONST BYTE*)(LPCTSTR)sData, (DWORD)(_tcslen(sData) + 1) * sizeof(TCHAR)) == ERROR_SUCCESS)
{
// 성공
}
// DWORD 값 저장
CString sValue2 = _T("Value2");
DWORD dData = 5;
if (RegSetValueEx(hKey, sValue2, 0, REG_DWORD,
(CONST BYTE*) & dData, sizeof(dData)) == ERROR_SUCCESS)
{
// 성공
}
}
RegCloseKey(hKey);
레지스트리 값 불러오기
■ RegQueryValueEx
레지스트리 키와 값 이름에 대한 형식 및 데이터를 검색하는 함수입니다..
🔽 함수 형식 및 파라미터 참고
https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regqueryvalueexw
※ Sample Code
HKEY hKey = NULL;
DWORD dwDisposition;
DWORD dwDataSize = 0;
TCHAR* pPath = NULL;
if (RegCreateKeyEx(HKEY_CURRENT_USER,
_T("SOFTWARE\\Dev"), 0,
NULL, REG_OPTION_NON_VOLATILE,
KEY_READ, NULL,
&hKey, &dwDisposition) == ERROR_SUCCESS)
{
// CString 값 불러오기
CString sValue1 = _T("Value1");
if (RegQueryValueEx(hKey, sValue1,
NULL, NULL, NULL, &dwDataSize) == ERROR_SUCCESS)
{
if (dwDataSize)
{
pPath = new TCHAR[dwDataSize];
if (RegQueryValueEx(hKey, sValue1,
NULL, NULL, (LPBYTE)pPath, &dwDataSize) == ERROR_SUCCESS)
{
// 성공
CString sResult;
sResult = pPath;
delete pPath;
}
}
}
// DWORD 값 불러오기
CString sValue2 = _T("Value2");
DWORD dResult;
dwDataSize = sizeof(dResult);
if (RegQueryValueEx(hKey, sValue2,
NULL, NULL, (LPBYTE)&dResult, &dwDataSize) == ERROR_SUCCESS)
{
//성공
}
}
RegCloseKey(hKey);
반응형
'C++, MFC' 카테고리의 다른 글
[C++/MFC] 텍스트 파일의 인코딩 확인하는 방법 (0) | 2022.09.16 |
---|---|
[MFC] 재배포 패키지 없이 프로그램 배포하는 방법 (0) | 2022.08.29 |
[C++/MFC] rand()함수를 이용하여 로또 번호 생성해보기 (0) | 2022.08.28 |
[C / C++] 난수, 랜덤 숫자 구하기 rand() (0) | 2022.08.19 |
[C++ / MFC] 실행중인 프로세스 찾기 / 종료시키기 (0) | 2022.08.09 |
댓글