MFC 遍历串口

 

//遍历串口实现
CString CComDialog::FindAllCom()
{
 HKEY hKey; 
 int rtn;   
 CString cominfo;
 int   i=0;
 DWORD   dwLong,dwSize;
 char   portName[256],commName[256];  

 rtn = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm",NULL, KEY_READ, &hKey);//打开串口注册表
 if( rtn == ERROR_SUCCESS)    
 {
  while(1)  
  {
   memset(portName, 0, sizeof(portName));
   memset(commName, 0, sizeof(commName));

   dwSize =   sizeof(portName);  
   dwLong   =   dwSize;
   rtn = RegEnumValue( hKey, i, portName, &dwLong,NULL, NULL, (PUCHAR)commName, &dwSize );

   if( rtn == ERROR_NO_MORE_ITEMS )   //   枚举串口  
    break;

   cominfo.Append(commName);
   cominfo += " ";
   i++;  
  }  
  RegCloseKey(hKey);  
 } 
 return cominfo;
}

 

 

你可能感兴趣的:(C++)