1. 枚举键值

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

2. SETUPAPI方式

 int EnumPortsWdm()
{
int i, dwDetDataSize;
TCHAR fname[], locinfo[];
HDEVINFO hDevInfo;
SP_DEVICE_INTERFACE_DETAIL_DATA* pDetData;
SP_DEVICE_INTERFACE_DATA ifcData;
SP_DEVINFO_DATA devdata; static const GUID ___GUID_CLASS_COMPORT = \
{ 0x86E0D1E0L, 0x8089, 0x11D0, { 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73 } };
/*static const GUID ___GUID_CLASS_COMPORT = \
{ 0xAD498944, 0x762F, 0x11D0, { 0x8D, 0xCB, 0x00, 0xC0, 0x4F, 0xC3, 0x35, 0x8C } };*/ hDevInfo = SetupDiGetClassDevs( &___GUID_CLASS_COMPORT, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE );
if ( hDevInfo == INVALID_HANDLE_VALUE )
{
return -;
} dwDetDataSize = sizeof( SP_DEVICE_INTERFACE_DETAIL_DATA ) + ;
pDetData = ( SP_DEVICE_INTERFACE_DETAIL_DATA* )calloc( , dwDetDataSize );
if ( !pDetData )
{
SetupDiDestroyDeviceInfoList( hDevInfo );
return -;
} ifcData.cbSize = sizeof( SP_DEVICE_INTERFACE_DATA );
pDetData->cbSize = sizeof( SP_DEVICE_INTERFACE_DETAIL_DATA ); for ( i = ; SetupDiEnumDeviceInterfaces( hDevInfo, NULL, &___GUID_CLASS_COMPORT, i, &ifcData ); i ++ )
{
memset( &devdata, , sizeof( SP_DEVINFO_DATA ) );
devdata.cbSize = sizeof( SP_DEVINFO_DATA ); if ( !SetupDiGetDeviceInterfaceDetail( hDevInfo, &ifcData, pDetData, dwDetDataSize, NULL, &devdata ) )
{
break;
} MessageBox( NULL, pDetData->DevicePath, TEXT( "PATH" ), MB_OK );
if ( SetupDiGetDeviceRegistryProperty( hDevInfo, &devdata, SPDRP_FRIENDLYNAME, NULL, ( PBYTE )fname, sizeof( fname ), NULL ) )
{
MessageBox( NULL, fname, TEXT( "NAME" ), MB_OK );
} if ( SetupDiGetDeviceRegistryProperty( hDevInfo, &devdata, SPDRP_LOCATION_INFORMATION, NULL, ( PBYTE )locinfo, sizeof( locinfo ), NULL ) )
{
if ( StrCmpN( locinfo, TEXT( "USB" ), ) == )
{
MessageBox( NULL, TEXT( "USB" ), TEXT( "TYPE" ), MB_OK );
}
}
} free( pDetData );
SetupDiDestroyDeviceInfoList( hDevInfo );
return ;
}

最新文章

  1. npm插件制作及发布基础教程
  2. 我与solr(四)--solrJ
  3. C++Socket编程总结 [转]
  4. HP SimpleXML
  5. python 元组 字符串 字典 列表嵌套练习题1
  6. UIAlertController高级之嵌入其他控件 分类: ios技术 2015-02-02 11:58 96人阅读 评论(0) 收藏
  7. 通过Map间接比较两个Json格式是否相同
  8. 【复制】【编码】MySQL复制中的编码问题
  9. node.js 之 Hello,World in Node !
  10. 使用Putty实现windows向阿里云的Linux云服务器上传文件
  11. application对象的应用案例
  12. jzoj6101. 【GDOI2019模拟2019.4.2】Path
  13. Java中的Cloneable接口理解
  14. JAVAMail邮件服务器
  15. apply 和call 的区别,apply实用小技巧
  16. jisuanqi
  17. B - 取(2堆)石子游戏
  18. 使用Eclipse构建Maven项目 (step-by-step) (转收藏)
  19. The Definitive Guide To Django 2 学习笔记(二) 第二个View 动态内容
  20. ExtJS 4.2.1学习笔记(二)——主题theme

热门文章

  1. jQuery查找
  2. _bzoj2243 [SDOI2011]染色【树链剖分】
  3. spoj DYNALCA - Dynamic LCA
  4. java实现九九乘法表
  5. TestNG基本注解(二)
  6. Atcoder B - Boxes 玄学 + 数学
  7. ubu下编译安装php7
  8. 树莓派 VNC 远程桌面 同一个桌面
  9. Java8-Lomda表达式
  10. jquery各种选择器示例