wins下串口 的自动识别

来源:互联网 发布:高响应比优先调度算法 编辑:程序博客网 时间:2024/04/29 17:41

/************************************************************************/
 /*                    串口自动识别                                                                        */
 /************************************************************************/
 //到注册表中自动查找到串口
 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)

原创粉丝点击