怎么自动检测可用串口号

2024-12-04 12:43:48
推荐回答(1个)
回答1:

 j = 0
  For i = 1 To 16 Step 1
  If comISP.PortOpen = True Then '先关闭串口
  comISP.PortOpen = False
  End If

  comISP.CommPort = i
  On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。
  comISP.PortOpen = True
  If Err.Number <> 8002 Then '无效的串口号。这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口
  If j = 0 Then
  j = i
  End If
  cboPort.AddItem "COM" & i '生成串口选择列表
  End If
  comISP.PortOpen = False
  Next i

  If j >= 1 Then
  cboPort.Text = "COM" & j '自动打开可用的最小串口号
  comISP.CommPort = j
  comISP.PortOpen = True
  cmdOpenCom.Caption = "关闭串口"
  shpCOM.FillColor = vbGreen
  If Err.Number = 8005 Then '串口已打开,vbExclamation '
  comISP.PortOpen = False
  cboPort.Text = ""
  cmdOpenCom.Caption = "打开串口"
  shpCOM.FillColor = vbRed
  End If
  End If