본문 바로가기

old drawer/C, C++, MFC

[C/C++] 레지스트리 사용법

아래는 간단히 정리된 레지스트리 사용법입니다.

MYAPP부분에 프로그램이름을 넣고 사용하시면 간단할 것입니다.

 

 

#define REGISTRY_ADDRESS HKEY_LOCAL_MACHINE\SOFTWARE\MYAPP

 

void m_RegWrite(const char* regItemName, const char* value)
{
 HKEY  m_hRegsKey;
 RegCreateKey(HKEY_CURRENT_USER, REGISTRY_ADDRESS, &m_hRegsKey);

 RegSetValueEx(m_hRegsKey, // subkey handle
      regItemName, // value name
      0, // must be zero
      REG_SZ, // value type canbe REG_DWORD,
      (LPBYTE) value, // pointer to value data
      strlen(value) + 1); // length of value data
 RegCloseKey(m_hRegsKey);
}
 
void m_RegWrite(const char* regItemName, unsigned long value)
{
 HKEY  m_hRegsKey;
 RegCreateKey(HKEY_CURRENT_USER, REGISTRY_ADDRESS, &m_hRegsKey);
 RegSetValueEx(m_hRegsKey,   // subkey handle
       regItemName,  // value name
       0,     // must be zero
       REG_DWORD,   // value type
       (LPBYTE) &value, // pointer to value data
       sizeof(DWORD));  // length of value data
 RegCloseKey(m_hRegsKey);
}
 
void m_RegRead(const char* regItemName, char* outValue)
{
 HKEY  m_hRegsKey;
 RegCreateKey(HKEY_CURRENT_USER, REGISTRY_ADDRESS, &m_hRegsKey);
 DWORD size = MAX_PATH+1;
 unsigned long ValueType = REG_SZ;
 RegQueryValueEx(m_hRegsKey, regItemName,
        NULL, &ValueType, (unsigned char *)outValue, &size);
 RegCloseKey(m_hRegsKey);
}
 
void m_RegRead(const char* regItemName, unsigned long* outValue)
{
 HKEY  m_hRegsKey;
 RegCreateKey(HKEY_CURRENT_USER, REGISTRY_ADDRESS, &m_hRegsKey);
 DWORD size = sizeof(DWORD);
 unsigned long ValueType = REG_DWORD;
 RegQueryValueEx(m_hRegsKey, regItemName,
        NULL, &ValueType, (unsigned char *)&outValue, &size);
 RegCloseKey(m_hRegsKey);
}