레지스트리의 값을 읽어 올때 USB 장지와 같이 자주 생성되고 반복되는 부분을 읽을 때는
RegEnumKeyEx 함수를 사용해야 합니다.
예를 들어
Drivers/Active/01
+-name : 값 "DSK1:"
Drivers/Active/02
+-name : 값 "NDF1:"
....
Drivers/Active/80
+-name : 값 "FED1:"
이런 식으로 생성되는 레지스트리의 name 값을 차례로 읽어 올 수 있습니다.
아래 간단한 사용법을 참조하세요.
HKEY reg_key;
char buff[0xffff]; // temp buffer
DWORD bufflen=sizeof(buff);
int index;
CComboBox m_KeyList; // return value object
CString YOUR_MASTER_KEY="Software\\your_app\\your_subkey\\";
CString REG_YOUR_ENTRY="Profile";
if(RegOpenKeyEx(HKEY_CURRENT_USER,
YOUR_MASTER_KEY+REG_YOUR_ENTRY,
0,
KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS,
®_key)!=ERROR_SUCCESS)
{
// key not found
}
index=0;
bufflen=sizeof(buff);
while(RegEnumKeyEx(reg_key,
index,
buff,
&bufflen,0,0,0,0)==ERROR_SUCCESS)
{
if(buff[0]!=0)
m_KeyList.AddString(buff);
index++;
bufflen=sizeof(buff);
}
RegCloseKey(reg_key);