C/C++레 지 스 트 의 바 이 너 리 데이터 읽 기(코드 예제)

1.RegOpenKeyEx 함수:
원형:
LONG RegOpenKeyEx(  
            HKEY hKey,     // 홈 키 이름 을 열 려 면  
            LPCTSTR lpSubKey, // 열 어야 할 하위 키 나 경로  
            DWORD ulOptions,  // 보류 하 다 
            REGSAM samDesired, // 조작 권한 표지  
            PHKEY phkResult  // 열 린 키 를 가리 키 는 핸들(포인터 로 되 돌려 줍 니 다) 
      );  
  반환 치:0 이 아 닌 것 을 성공 적 으로 되 돌리 지 못 하고 ERROR 를 성공 적 으로 되 돌려 줍 니 다.SUCCESS.  
  설명:이 함 수 는 지정 한 키 나 하위 키 를 여 는 것 을 책임 집 니 다.존재 하지 않 으 면 만 들 지 않 습 니 다.
  마이크로소프트 공식 문서 보기:http://msdn.microsoft.com/zh-cn/aa912084
2,RegSetValueEx 함수:
 원형:
LONG RegSetValueEx(  
            HKEY hKey,      // 열 린 키 의 핸들  
            LPCTSTR lpValueName, // 값 의 이름 을 조회 하려 면 검색 키 의 기본 값 으로\"\"와 같이 전달 하 십시오.  
            DWORD Reserved,   // 보류 하 다.  
            DWORD dwType,    // 키 입력 형식 쓰기  
            CONST BYTE *lpData, // 변수 데이터 의 주소  
            DWORD cbData     // 변수의 길이  
      );  
 반환 치:0 이 아 닌 것 을 성공 적 으로 되 돌리 지 못 하고 ERROR 를 성공 적 으로 되 돌려 줍 니 다.SUCCESS  
 설명:특정한 하위 키 아래 의 특정한 이름 의 값 을 설정 합 니 다.
마이크로소프트 공식 문서 보기:http://msdn.microsoft.com/zh-cn/aa916717\#
3,RegQueryValueEx 함수:
원형:
LONG RegQueryValueEx(  
            HKEY hKey,      // 열 린 키 의 핸들  
            LPTSTR lpValueName, // 값 의 이름 을 조회 하려 면 검색 키 의 기본 값 으로\"\"와 같이 전달 하 십시오.  
            LPDWORD lpReserved, // 보류 하 다  
            LPDWORD lpType,   // 조회 유형  
            LPBYTE lpData,    // 데이터 저장 주소  
            LPDWORD lpcbData   // 데이터 길이+1  
      );  
  반환 치:0 이 아 닌 것 을 성공 적 으로 되 돌리 지 못 하고 ERROR 를 성공 적 으로 되 돌려 줍 니 다.SUCCESS  
  설명:하위 키 에서 특정 이름 의 값 을 읽 습 니 다.
  마이크로소프트 공식 문서 보기:http://msdn.microsoft.com/zh-cn/aa914692
바 이 너 리 데이터 코드 예제 쓰기:

# include <windows.h>
# include <tchar.h>
 
int main(void)
{
	HKEY hKey;
	HKEY rootKey = HKEY_CURRENT_USER;
	TCHAR * subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"
					 "\\MenuOrder\\Start Menu2\\Programs\\test";
	TCHAR * keyValue = "c:\\test.exe";
	long openReg;
	long setRegValue;
	DWORD dwType = REG_BINARY;
	BYTE value[256] = "c:\\test.exe";
	openReg = RegOpenKeyEx(rootKey, subKey, 0, KEY_WRITE, &hKey);
	if (openReg == ERROR_SUCCESS)
	{
		setRegValue = RegSetValueEx(hKey, _T("order"), 0, dwType, value, 256);
		if (setRegValue == ERROR_SUCCESS)
		{
			MessageBox(NULL, _T("Write Sucess"), _T("call"), MB_OK);
		}
		else
		{
			MessageBox(NULL, _T("Write Fail"), _T("call"), MB_OK);
		}
		RegCloseKey(hKey);
	}
	return 0;
}
바 이 너 리 데 이 터 를 읽 는 코드 예제:

# include <windows.h>
# include <tchar.h>
 
int main(void)
{
	HKEY hKey;
	HKEY rootKey = HKEY_CURRENT_USER;
	TCHAR * subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"
					 "\\MenuOrder\\Start Menu2\\Programs\\test";
	long openRegResult;
	long readRegResult;
	DWORD dwType = REG_BINARY;
	REGSAM mode = KEY_READ;
	BYTE value[256] = {0};
	DWORD length = 256;
	openRegResult = RegOpenKeyEx(rootKey, subKey, 0, mode, &hKey);
	if (ERROR_SUCCESS == openRegResult)
	{
		readRegResult = RegQueryValueEx(hKey, _T("order"), 0, &dwType, value, &length);
		if (ERROR_SUCCESS == readRegResult)
		{
			MessageBox(NULL, _T(value), _T("call"), MB_OK);
		}
		else
		{
			MessageBox(NULL, _T("ERROR"), _T("call"), MB_OK);	
		}
	}
	RegCloseKey(hKey);
	return 0;
}
주:다른 유형의 레 지 스 트 키 를 읽 고 쓰 는 것 은 상기 와 유사 하 며 따로 설명 하지 않 습 니 다.

좋은 웹페이지 즐겨찾기