社区应用 社区服务 会员列表 统计排行 帮助 银行
  • 1612阅读
  • 14回复

[求助]最快获取串口的方法,求助转为易或制作dll

楼层直达
发帖
1935
铜币
348
威望
0
E积分
10
技术积分
0
    大家最常用获取系统串口的方法有多种。


哪位高手有时间把第四种方法,转成易模块,或者做成dll。
我先在此谢谢了。


    1、通过读取注册表(我目前用的就是这种)

    2、逐个判断串口是否能打开(方法可以,但是速度比较慢);
    3、使用 EnumPort 方法,这个方法也可以  
(可以枚举所有的并口和打印机等接口,而且能找到虚拟串口(这些串口有些未使用时,在注册表和硬件设备管理器中是不能取得的)。但是该方法稍微耗时些,笔者在自己电脑上试过,大概需要几十 ms ,主要问题是该方法有些 usb 串口并不能查到,所以该方法并不可靠)
    4 、使用 SetupAPI 函数集的方法,这种方法最好。

因为已经有人将复杂的代码封装起来了,我只需调用就可以完成工作了,具体的说明请看 http://www.codeguru.com/Cpp/W-P/system/hardwareinformation/article.php/c5721/ ,下面给出本人调用该方法的例子代码:       int m_nSerialPortNum(0);// 串口计数
       CString          strSerialList[256];  // 临时定义 256 个字符串组       CArray<SSerInfo,SSerInfo&> asi;
       EnumSerialPorts(asi,TRUE);// 参数为 TRUE 时枚举当前可以打开的串口,
// 否则枚举所有串口       m_nSerialPortNum = asi.GetSize();
       for (int i=0; i<asi.GetSize(); i++)       {
              CString str = asi.strFrien dlyName;       }
补充说明一下,使用该方法只要在你的程序中,添加“ EnumSerial.cpp ”和“ EnumSerial.h ”两个文件,并且将 Setupapi.lib 包含进你的工程文件中就行了,该方法时间上来说可能和第三种方法差不多,但该方法获取的串口完完全全就是硬件设备管理器中的串口。

SerialEnum.zip (146 K) 下载次数:94




级别: 幼儿园
发帖
16
铜币
0
威望
0
E积分
0
技术积分
0
只看该作者 沙发  发表于: 2016-12-15
感谢 万分感谢
级别: 托儿所
发帖
3
铜币
49
威望
0
E积分
0
技术积分
0
只看该作者 板凳  发表于: 06-26
谢谢,刚开始学!!!
级别: 商业用户
发帖
4
铜币
37
威望
0
E积分
0
技术积分
0
只看该作者 地板  发表于: 07-07
c++?
还是易?
级别: 幼儿园
发帖
13
铜币
7
威望
0
E积分
0
技术积分
0
只看该作者 4楼 发表于: 07-07
前来支持 技术不行 只能心里支持了
级别: 商业用户
发帖
345
铜币
3822
威望
0
E积分
148
技术积分
0
只看该作者 5楼 发表于: 07-08
收藏备用
级别: 托儿所
发帖
2
铜币
285
威望
0
E积分
0
技术积分
0
只看该作者 6楼 发表于: 07-29
C++....
级别: 托儿所
发帖
1
铜币
69
威望
0
E积分
0
技术积分
0
只看该作者 7楼 发表于: 08-25
易语言怎么写自动识别链接插入的手机COM串口?
级别: 商业用户
发帖
789
铜币
35
威望
0
E积分
0
技术积分
0

只看该作者 8楼 发表于: 09-25
一直关注 解决了吗?  取串口名 给我难住了 !
发帖
1935
铜币
348
威望
0
E积分
10
技术积分
0
只看该作者 9楼 发表于: 10-11
@aijianli
没有解决
快速回复

限60 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个