首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

当串口被占用后怎么才能实现再判断上一个口是否可用

2013-03-14 
当串口被占用后如何才能实现再判断下一个口是否可用?我想判断当前口是否可用的时候,如果当前口被打开占用

当串口被占用后如何才能实现再判断下一个口是否可用?
我想判断当前口是否可用的时候,如果当前口被打开占用后,发现用For循环的时候,不论i如何增加,实际上.CommPort = i始终是固定为当前已经占用打开的串口上,不管之后的串口是否真实存在.比如说是串口2被占用打开了,那么继续从i=3开始的判断.CommPort都是固定在2口上,Err.Number也始终是8005,非要先关闭串口2之后再循环不存在的串口才会报8002
    如果是这样的话,当其它程序使用了串口后我还想判断可以使用的串口怎么才能避免这种情况?先管点其它程序的所使用的串口号似乎不太合适.


 With MSComm1
    On Error Resume Next
    If 通信端口 = 0 Then
        For i = 1 To 8
          'i = 1
          .CommPort = i
          .PortOpen = True
          If Err.Number = 0 Then
             读取 = "DD2C"
             Call 转换.校检(读取)
             buf(0) = &HAA
             buf(1) = &HD1
             buf(2) = &H22
             buf(3) = Val("&h" & 校检1)
             buf(4) = Val("&h" & 校检2)
             buf(5) = &HBB
             MSComm1.Output = buf
          End If
          If Err.Number = 0  Then MSComm1.PortOpen = False
       Next
  End With

[解决办法]
判断串口打开与否应该这样判断
if mscomm1.portopen then 
   '端口打开的
else
   '端口未打开
endif
[解决办法]
直接去读注册表,可以得知有哪些物理端口。

热点排行