从注册表中 读取串口
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;
}