если я тебя правельно понял то тебе поможет это (кусок кода из моей программы)
| Код | void CFinishPage::FillDrvList() { while (LB_ERR != m_oDrvList.DeleteString(0));
CString soSubKey = "SOFTWARE\\ODBC\\ODBCINST.INI"; DWORD dwIndex = 0, dwSizeBuf, dwType1, dwType2 = REG_SZ, dwSizeData1, dwSizeData2; HKEY hKey1, hKey2; char *szBuf = new char[MAX_PATH]; BYTE *szData1 = new BYTE[MAX_PATH]; BYTE *szData2 = new BYTE[MAX_PATH];
if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, soSubKey + "\\ODBC Drivers", NULL, KEY_ALL_ACCESS, &hKey1)) { while (ERROR_SUCCESS == RegEnumValue(hKey1, dwIndex, szBuf, &dwSizeBuf, NULL, &dwType1, szData1, &dwSizeData1)) { if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, soSubKey + CString("\\") + szBuf, NULL, KEY_ALL_ACCESS, &hKey2)) { if (ERROR_SUCCESS == RegQueryValueEx(hKey2, "FileExtns", NULL, &dwType2, szData2, &dwSizeData2)) m_oDrvList.AddString(szBuf); RegCloseKey(hKey2); }
dwIndex++; dwSizeBuf = MAX_PATH; dwSizeData2 = MAX_PATH; } RegCloseKey(hKey1); }
delete[] szBuf; delete[] szData1; delete[] szData2; }
|
правда надо немного подшаманить))) |