本帖最后由 hn04 于 2009-10-19 10:54 编辑
问题已经解决了!代码如下:
'检测系统存在的串口,并设置到下拉列表框
Dim a As Integer
For a = 1 To 16
'判断添加被占用的串口到列表
If ERR.Number = 8005 Then '如果错误号为8005(端口已经打开),则添加到列表
Combo1.AddItem ("COM" & a - 1)
End If
ERR.Clear '清除错误信息
'判断添加可用的串口到列表
MSComm1.CommPort = a
If MSComm1.PortOpen = True Then '如果串口处于打开状态说明,此串口存在,添加到列表
Combo1.AddItem ("COM" & a)
Else '如串口未处于打开状态,进行串口检测操作
On Error Resume Next '下一句操作出现错误,说明这个串口号不存在,进入下一个串口号的检测
MSComm1.PortOpen = True '打开这个串口,如果出现错误则说明这个串口不存在
If MSComm1.PortOpen = True Then '如果串口处于打开状态说明,此串口存在,添加到列表,并关闭该串口,恢复初始的串口状态
Combo1.AddItem ("COM" & a)
MSComm1.PortOpen = False
End If
End If
Next |