2,640
社区成员
发帖
与我相关
我的任务
分享
if(message == WM_DEVICECHANGE)
{
if(DBT_DEVICEARRIVAL==wParam)
{
PDEV_BROADCAST_HDR pDevBroadcastHdr;
PDEV_BROADCAST_PORT pDevPort;
pDevBroadcastHdr = (PDEV_BROADCAST_HDR) lParam;
pDevPort = (PDEV_BROADCAST_PORT)pDevBroadcastHdr;
if(pDevBroadcastHdr->dbch_devicetype == DBT_DEVTYP_PORT)
{
flag = OpenPort((short)_tcstoul((pDevPort->dbcp_name)+3,NULL,10),1);
}
return TRUE;
}
}
//////////////从注册表中读取用户的串口信息/////////
HKEY hKEY;
LPCTSTR data_Set="HARDWARE\\DEVICEMAP\\SERIALCOMM";
if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY)) //打开注册表
{
AfxMessageBox("注册表错误: 无法打开有关的hKEY!");
return;
}
long i;
LPBYTE Data_Get=new BYTE [10];
for (i=0; ;i++) //中間為空,沒有進行i值的比較
{
TCHAR szValueName[_MAX_PATH + 1];
DWORD dwValueName = sizeof(szValueName);
LPDWORD lpType = 0;
DWORD cbData = 10;
long ret = (RegEnumValue(hKEY,i,szValueName,&dwValueName,
NULL,lpType,Data_Get,&cbData));
if (ret)
break;
for (int j=0; j<10; j++)
{
strPort[i].Format(_T("%s"),Data_Get);
}
Port_Num = i+1;
}
delete[] Data_Get;
::RegCloseKey(hKEY); //关闭注册表
////////////////////////////////////////////////////////