C++/MFC 從登錄檔中 讀取串列埠
阿新 • • 發佈:2018-11-01
從登錄檔中 讀取串列埠
CComboBox m_nPortList;//列表 int InitComm() { m_nPortList.ResetContent(); HKEY hKEY; LPCTSTR data_Set=_T("HARDWARE\\DEVICEMAP\\SERIALCOMM"); if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY)) //開啟登錄檔 { MessageBox(_T("錯誤: 無法開啟有關的hKEY!")); return 0; } long i; for (i=0; ;i++) //中間為空,沒有進行i值的比較 { CString strPort; TCHAR szValueName[_MAX_PATH + 1]; DWORD dwValueName = sizeof(szValueName); LPDWORD lpType = 0; //LPBYTE Data_Get=new BYTE [10]; TCHAR Data_Get[255];//單雙位元組 DWORD cbData = 12; long ret = (RegEnumValue(hKEY,i,szValueName,&dwValueName, NULL,lpType,reinterpret_cast<LPBYTE>(Data_Get),&cbData));//多位元組 轉 單位元組 if (ret) break; for (int j=0; j<10; j++) strPort += Data_Get[j]; m_nPortList.AddString(strPort); } ::RegCloseKey(hKEY); //關閉登錄檔 return TRUE; }