获取当前系统可用串口号(转,亲测有效)

void GetComList_256(CComboBox* pComnum)
{
  CString strCom, strComOpen;
  int nCom = 0;
  int count = 0;
  HANDLE hCom;
  pComnum->ResetContent();//组合框清空
   do
   {
   nCom++;
     strCom.Format(_T("COM%d"), nCom);
     strComOpen.Format(_T("\\\\.\\COM%d"), nCom);
  hCom = CreateFile(strComOpen, GENERIC_READ | GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);//如果返回不为空则此串口可用
     if (INVALID_HANDLE_VALUE == hCom)
    {
    DWORD error = ::GetLastError();//取得错误信息
    }
     else
    {
    pComnum->AddString(strCom);
    count++;
    }
     CloseHandle(hCom);
  } while (nCom < 256);
 pComnum->SetCurSel(0);
}

posted @ 2016-10-27 21:47  朱小勇  阅读(1921)  评论(0编辑  收藏  举报