wins下串口 的自动识别

/************************************************************************/
 /*                    串口自动识别                                                                        */
 /************************************************************************/
 //到注册表中自动查找到串口
 HKEY hKey;   
 int rtn;    
 rtn = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\SERIALCOMM", NULL, KEY_READ, &hKey);   
 if( rtn == ERROR_SUCCESS) // 打开串口注册表    
 {   
  int i=0;  
  char portName[256], commName[256];   
  DWORD dwLong,dwSize;   
  while(1)   
  {   
   dwSize = sizeof(portName);   
   dwLong = dwSize;   
   rtn = RegEnumValue( hKey, i, portName, &dwLong, NULL, NULL, (PUCHAR)commName, &dwSize );   
   if( rtn == ERROR_NO_MORE_ITEMS ) // 枚举串口    
    break; // commName就是串口名字    
   i++;   
  }   
  RegCloseKey(hKey); 
  m_iPort = _ttoi(&commName[3]);
 } 
 

这样得到的m_iPort就为串口号,在实际操作当中"HARDWARE\\DEVICEMAP\\SERIALCOMM"为小写的话可能会导致注册表打不开,返回rtn的值为2(为0-normal)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值