如何检测一个串口是否已经被占用?
用MSCOMM控件
On Error Resume Next
MSComm1.CommPort = 1 要打开的串口
MSComm1.PortOpen = True
判断状态
If MSComm1.PortOpen = True Then
msgbox "串口1未被占用"
MSComm1.PortOpen = False
Err.Clear
ElseIf Err.Number = 8005 Then 端口已打开
msgbox "串口1已被占用"
MSComm1.PortOpen = False
Err.Clear
End If
Private Function MsCommOpen(ComInfo As typComInfo) As String
On Error GoTo OpenErr
指定使用的COM口
MSComm1.CommPort = ComInfo.Port
波特,奇偶校验,数据位,停止位(例如:"9600,N,8,1")
MSComm1.Settings = ComInfo.Baud & "," & ComInfo.CurBit & "," & ComInfo.DataBit & "," & ComInfo.StopBit
握手
MSComm1.Handshaking = 0
打开端口
MSComm1.PortOpen = True
MsCommOpen = "ok"
Exit Function
OpenErr:
MsCommOpen = Err.Description
End Function