一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

獲取計(jì)算機(jī)所有串口的VC代碼

 yxz1212_bao 2016-04-20
多數(shù)涉及串口操作的軟件,在讓用戶選擇串口時(shí),只會(huì)機(jī)械的給出從COM1到COM16的組合框。但實(shí)際上可能有大于COM16的串口號(hào),于是想編程來獲取實(shí)際的串口號(hào)再列出來??雌饋砗茈y,其實(shí)關(guān)于串口的信息保存了注冊(cè)表中,代碼如下:
void CPageSetCom::ShowComm()
{
long  lReg;
HKEY  hKey;
DWORD  MaxValueLength;
DWORD  dwValueNumber;

lReg=RegOpenKeyExA(HKEY_LOCAL_MACHINE, 'HARDWARE\\DEVICEMAP\\SERIALCOMM', 0, KEY_QUERY_VALUE, &hKey);
if(lReg!=ERROR_SUCCESS)
{
  AfxMessageBox(L'Open Registry Error!\n');
  return;
}

lReg=RegQueryInfoKeyA(hKey,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  &dwValueNumber, //返回和hKey關(guān)聯(lián)的值
  &MaxValueLength,
  NULL,
  NULL,
  NULL);
if(lReg!=ERROR_SUCCESS) //沒有成功
{
  AfxMessageBox(L'Getting  Info  Error!\n');
  return;
}

LPSTR  pValueName,pCOMNumber;
DWORD  cchValueName,dwValueSize=6;

for(DWORD  i=0;i < dwValueNumber;i++)
{
  cchValueName=MaxValueLength+1;
  dwValueSize=6;
  pValueName=(LPSTR)VirtualAlloc(NULL,cchValueName,MEM_COMMIT,PAGE_READWRITE);
  lReg=RegEnumValueA(hKey,
   i,
   pValueName,
   &cchValueName,
   NULL,
   NULL,
   NULL,
   NULL);
  
  if((lReg!=ERROR_SUCCESS)&&(lReg!=ERROR_NO_MORE_ITEMS))
  {
   AfxMessageBox(L'Enum  Registry  Error or No More Items!\n');
   continue;
  }
  
  pCOMNumber=(LPSTR)VirtualAlloc(NULL,6,MEM_COMMIT,PAGE_READWRITE);
  lReg=RegQueryValueExA(hKey,
   pValueName,
   NULL,
   NULL,
   (LPBYTE)pCOMNumber,
   &dwValueSize);
  
  if(lReg!=ERROR_SUCCESS)
  {
   AfxMessageBox(L'Can not get the name of the port');
   continue;
  }
  CString strCommList;
  //AfxMessageBox(pCOMNumber);
  CharToUnicode(pCOMNumber,&strCommList);
  //m_ctlPort.AddString(strCommList);
  BOOL m_bInsert=0;
  
  if(((CComboBox*)GetDlgItem(IDC_CMBREADERCOM))->GetCount()==0)
   ((CComboBox*)GetDlgItem(IDC_CMBREADERCOM))->AddString(strCommList);
  else
  {
   CString strTemp=strCommList;
   strCommList.TrimLeft(L'COM');
   for(int icurrent=0;icurrent<((CComboBox*)GetDlgItem(IDC_CMBREADERCOM))->GetCount();icurrent++)
   {
    CString strCurrent;
    ((CComboBox*)GetDlgItem(IDC_CMBREADERCOM))->GetLBText(icurrent,strCurrent);
    strCurrent.TrimLeft(L'COM');
    if(_ttol(strCurrent)>_ttol(strCommList))
    {
     ((CComboBox*)GetDlgItem(IDC_CMBREADERCOM))->InsertString(icurrent,strTemp);
     m_bInsert = 1;
     break;
    }
   }
   if(!m_bInsert)
    ((CComboBox*)GetDlgItem(IDC_CMBREADERCOM))->InsertString(icurrent,strTemp);
  }
  
  VirtualFree(pValueName,0,MEM_RELEASE);
  VirtualFree(pCOMNumber,0,MEM_RELEASE);
}
}
int CPageSetCom::CharToUnicode(char *pchIn, CString *pstrOut)
{
int nLen;
    WCHAR *ptch;
    if(pchIn == NULL)
    {
        return 0;
    }
    nLen = MultiByteToWideChar(CP_ACP, 0, pchIn, -1, NULL, 0);
    ptch = new WCHAR[nLen];
    MultiByteToWideChar(CP_ACP, 0, pchIn, -1, ptch, nLen);
    pstrOut->Format(_T('%s'), ptch);
    
    delete [] ptch;
    return nLen;
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    韩日黄片在线免费观看| 日韩欧美好看的剧情片免费| 国产中文字幕一二三区| 国产高清一区二区白浆| 欧美人禽色视频免费看| 国产精品99一区二区三区| 亚洲乱码av中文一区二区三区| 亚洲精品国产精品日韩| 精品国自产拍天天青青草原| 情一色一区二区三区四| 中文字幕精品一区二区年下载| 91精品国产综合久久精品| 精品国产av一区二区三区不卡蜜| 色婷婷中文字幕在线视频| 九九热精品视频在线观看| 五月婷婷亚洲综合一区| 欧美不雅视频午夜福利| 最新午夜福利视频偷拍| 狠狠亚洲丁香综合久久| 久久精品国产熟女精品| 亚洲天堂精品在线视频| 国产免费一区二区不卡| 国产精品十八禁亚洲黄污免费观看 | 99国产一区在线播放| 日韩精品人妻少妇一区二区| 精品欧美国产一二三区| 在线视频三区日本精品| 中文字幕亚洲在线一区| 真实偷拍一区二区免费视频| 国产精品刮毛视频不卡| 精品一区二区三区三级视频 | 欧美一级不卡视频在线观看| 熟女免费视频一区二区| 久久免费精品拍拍一区二区| 国产中文另类天堂二区| 欧美日韩国产另类一区二区 | 国产超薄黑色肉色丝袜| 久久少妇诱惑免费视频| 国产毛片对白精品看片| 91欧美日韩精品在线| 粗暴蹂躏中文一区二区三区|