如何通过程序获取读卡器所在的串口、驱动程序状态、启用和停用此设备
有一个读卡器设备,每次连接到电脑上时,获取到的串口资源可能不一致,有时是COMM1,有时是COMM2、驱动程序不明此读卡器在设备管理器中的名称 为Prolific USB-to-Serial Comm Port (COM3)
现在有以下几个问题,如何通过编写程序解决以下几个问题:
1、如何根据设备管理器中的设备名称 提取其串口名称
2、如何获取此设备的驱动状态 是完装完毕,还是处于待安装状态
3、如何停用此设备(在设备管理器中),而后再启用该设备
串口的打开是程序主动进行的,一般都是选关闭串口,再打开串口,再向串口发测试信息,看串口是否有响应。并非由串口连接的设备方处理的。
向串口设备发指令后,可以在一定的时间内从缓冲区读到返回的应答信号,要对应答进行检验,如果正确,才能继续向下进行。设备的应答是根据具体设备来的,好像要自己写而不是用什么驱动,驱动是底层的。
串口设备生产厂家一般都有例程的,找到例程,就全知道了,实际上,它就相当于一个协议,说明如何与设备通讯。 按你都意思就是需要读取“设备管理器”中端口的信息。这个可以通过读取系统注册表来实现。
至于你都启用停用的项目,我想也得通过注册表吧。
总而言之,就是操作注册表
此外还可以象楼上说的那样,通过发送测试信息,看看串口有没有反馈来确定读卡器是否连接在本口上。 你可以下载我写的这个 DLL 完成你的目的:
http://download.csdn.net/detail/SupermanKing/3168818
无法获知 它的使用的串口号呢
学习。。。 你停用设备只要知道设备名就可以了,管它串口号是多少。
还有,串口号只是针对软件而言的,并不代表某个串口上的硬件是对应的硬件,
除非尝试过用那个端口与硬件进行通讯,并确定硬件的存在,否则这种串口号知
道也没用。
至于如何枚举串口,简单的可以用 WMI 对象,想提高效率可以用API枚举,但无论
哪种方法,再以前的 CSDN 中都能找到答案,我都有发过,你只要搜索一下就应该
能找到的。
补充:VB , 基础类