我想列举一下本机COM口的状态,或者取所有的已使用中的COM端口号,该怎么做?还有,如果一个COM端口已经被使用,
那么 On Error GoTo Err:
MSComm1.CommPort = i
还是会终端程序报错的,
提示:
实时错误 '8005'
端口已经打开,该怎么绕开?
那么 On Error GoTo Err:
MSComm1.CommPort = i
还是会终端程序报错的,
提示:
实时错误 '8005'
端口已经打开,该怎么绕开?
解决方案 »
- 输入法不能切换
- 关于安装Visual Stdio6.0时“the language dll 'vb6chs.dll'could not be found”问题!
- 如何在目标控件中(listview或treeview)获知拖动多个listItem的text?
- 如何调用treeview的nodeclick事件
- 散分4
- ==========怎么给 《聊天室》 的《输入框》传递字符串===============
- 谢谢,刚才有人告诉我怎么在VB Actviex组件中增加方法,请问怎么增加属性呢?谢谢。
- 急求助 vb中的DataGrid有没有超链接的功能
- 关于VB打包
- 求助!用vb自带的access97数据库,常引起第一条记录的第一个字段丢失,有何方法解决?望赐教。
- 菜鸟请教ADO中parameter的用法
- 请问有什么办法把VB做的软件做成绿色版的?
MSComm1.CommPort = i ErrHandler:
If Err.Number = 8005 Then
Debug.Print "COM" & i & " in use"
Resume Next
Else
MsgBox "Realtime error: " & Err.Number & vbCrLf & Err.Description
End If
并不能避开提示:
实时错误 '8005'
端口已经打开
跟我的On Error GoTo Err
效果是一样的,程序还是报错结束。
我想把端口一直遍历下去,直到找到我所需要的。
一个listbox(用于查看结果),一个按钮,一个 MSComm:Private Sub Command1_Click()
List1.Clear
Dim i As Long, j As Long
For i = 1 To 16
MSComm1.CommPort = i
On Error Resume Next
MSComm1.PortOpen = True
If Err.Number = 0 Then
List1.AddItem "串口" + CStr(i) + "可以使用"
Else
List1.AddItem "试图打开串口" + CStr(i) + "时,发生错误,错误描述为:" + Err.Description
MSComm1.PortOpen = False
Err.Clear
End If
Next i
End Sub要用On Error Resume Next语句,使程序发生错误时也能向下执行
Option ExplicitPrivate Sub Command1_Click()
List1.Clear
Dim i As Long, j As Long
Dim s As String
For i = 1 To 16
If mtest(i, s) Then
List1.AddItem "串口" + CStr(i) + "可以使用"
Else
List1.AddItem "试图打开串口" + CStr(i) + "时,发生错误,错误描述为:" + s
End If
Next
End Sub
Private Function mtest(ByVal i As Long, ErrDescription As String) As Boolean
On Error GoTo ErrHandler
MSComm1.CommPort = i
MSComm1.PortOpen = True
ErrDescription = "没有错误发生" 'ErrDescription为输出参数
mtest = True '可以使用
Exit Function
ErrHandler:
ErrDescription = Err.Description
mtest = False '不可以使用
End Function
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_SerialPortConfiguration", , 48)
For Each objItem In colItems
Debug.Print "Name: " & objItem.Name
Debug.Print "Description: " & objItem.Description
Debug.Print "isbusy: " & objItem.isbusy
Next
Debug.Print "========================================="
End Sub