使用VB寻找串口出错 代码如下,可是老是出错,有高人帮忙解决一下啊 谢谢

PrivateSubForm_Load()OnErrorGoTotag1'寻找串口Fori=1To16MSComm1.CommPort=iIfMSComm1.PortOp... Private Sub Form_Load()
On Error GoTo tag1
'寻找串口
For i = 1 To 16
MSComm1.CommPort = i

If MSComm1.PortOpen = True Then '如果原来就是打开的串口,查询后要保持端口原样
Combo1.AddItem "COM" & i '保持端口原样以保持其他设备正常运作
k = k + 1
Else
MSComm1.PortOpen = True
'如果上面的语句错误则不执行下面的代码而继续循环
Combo1.AddItem "COM" & i
k = k + 1

End If

tag1:

Next i

If k = 0 Then
MsgBox "未发现有任何串口,请核查!", vbCritical, "ERROR MESSAGE"
MsgBox "安装好串口后请再次搜索", vbInformation, "INFORMATION"
Else
MsgBox "共发现" & k & "个串口", vbInformation, "FIND COM"
End If
'串口寻找结束
END SUB
有两个问题
1.如果一个串口被另外一个程序所打开,那么上述代码找不到被别人打开的程序。例如COM1被一个程序打开,那么上述代码就找不到COM1
2.提示错误不能打开一个已经打开的串口
我没学过C,大学时只学了VB
展开
 我来答
iwangchen
2011-11-28 · 超过38用户采纳过TA的回答
知道答主
回答量:1247
采纳率:6%
帮助的人:67.5万
展开全部
MSComm1.PortOpen = True
If Err.Number = comPortInvalid Then
MSComm1.PortOpen = False
goto tag1
Else
Combo1.AddItem "COM" & i
k=k+1
End If
jimodeduzou
2011-11-27 · TA获得超过3202个赞
知道大有可为答主
回答量:2567
采纳率:66%
帮助的人:1291万
展开全部
能详细说一下弹出的是什么错误吗?
思路上没有什么大问题, 另外你确定你的端口有16个这么多?

我用C#做这种程序的时候 通常先建立COM列表, 然后再循环COM口检测的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式