关于枚举系统中串口问题

akcw007 2008-08-05 04:01:05
我想通过一个程序枚举系统中的串口,结果到网上搜了搜。竟然没有一个我想要的。
网上有的方法都是,要么注册表,要么依次打开串口,看得到的HANDLE合法不。但我不想用这种方法。
以前写了一个串口程序,当时就搜到了一个枚举串口的程序。很短,只有几行,调用了一个函数,好像是VC运行时库的一个函数。
但我搜了半天也没找到这段程序。
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
akcw007 2010-01-12
  • 打赏
  • 举报
回复
//用这个API,还可以得到其他的参数!!!!!!!!   
//枚举机器串口个数
int EnumerateCOMPort()
{
int portcnt = 0;
TCHAR port[MAX_PATH];
COMMCONFIG comcfg;
ULONG BuffSize = sizeof(port);

for (int i = 1; i< 255 ; i++)
{
_stprintf(port,_T("COM%d"),i);
BuffSize = sizeof(port);
if (GetDefaultCommConfig(port,&comcfg,&BuffSize))
portcnt ++;
memset(port,0,sizeof(port));
}
TRACE(_T("\nThis computer has %d COM\n"),portcnt);
return portcnt;
}


我找到了,多谢!
akcw007 2008-10-09
  • 打赏
  • 举报
回复
函数是EnumPorts()
它的功能可能也是查注册表DEVICEMAP---->SERIALCOMM那个查看.
但问题是注册表查不到USB转串口的,

而依次打开有致命的问题是,如果某串口正在用,就检测不到了.
feilinhe 2008-08-05
  • 打赏
  • 举报
回复
我用的的是依次打开的方式,注册表方式好象检测不到USB的,其它的方式我也不知道
zaodt 2008-08-05
  • 打赏
  • 举报
回复
注册表方式不错啊!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧