C++获取串口列表的方法

int CUtil::GetSystemPorts(CString *pNameList, CString *pPortList)  
{  
    CRegKey RegKey;  
    int nCount = 0;  
      
    if(RegKey.Open(HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm") == ERROR_SUCCESS)  
    {  
        while(true)  
        {  
            char ValueName[_MAX_PATH];  
            unsigned char ValueData[_MAX_PATH];  
            DWORD nValueSize = _MAX_PATH;  
            DWORD nDataSize = _MAX_PATH;  
            DWORD nType;  
              
            if(::RegEnumValue(HKEY(RegKey), nCount, ValueName, &nValueSize, NULL, &nType, ValueData, &nDataSize) == ERROR_NO_MORE_ITEMS)  
            {  
                break;  
            }  
              
            if(pNameList)  
                pNameList[nCount] = ValueName;  
              
            if(pPortList)  
                pPortList[nCount] = ValueData;  
              
            nCount++;  
        }  
    }  
      
    return nCount;  
}  

posted @ 2012-03-18 23:09  岁月神偷  阅读(4624)  评论(0编辑  收藏  举报