Windows2000+SP3,VB6+SP5,运行一个用MSCOMM控件的程序,
第一次运行时正常,此后退出这个VB程序或按VB中停止后再次运行程序,
执行到MScomm1.portoprn=True时出错,显示错误8005,端口已打开;
此时如执行MScomm1.portoprn=True,显示错误8012,设备未打开
此时运行其他使用串口程序也无法使用此串口,注销后仍无法使用此串口;
重启机器后可以使用此串口(又是只能用一次)
什么原因?如何解决?
第一次运行时正常,此后退出这个VB程序或按VB中停止后再次运行程序,
执行到MScomm1.portoprn=True时出错,显示错误8005,端口已打开;
此时如执行MScomm1.portoprn=True,显示错误8012,设备未打开
此时运行其他使用串口程序也无法使用此串口,注销后仍无法使用此串口;
重启机器后可以使用此串口(又是只能用一次)
什么原因?如何解决?
if mscomm1.portopen=false then mscomm1.portopen=true
do until mscomm1.portopen=true
doevents
loop
关闭时也是如此,那么端口一般就可以关闭了,如果还不放心还可以
set mscomm1=nothing
if mscomm1.portopen=false then
mscomm1.portopen=true
end if
当程序执行到mscomm1.portopen=true时竟然报端口已经打开的错!!!
在点一次执行按钮还能过去,不再报错!
郁闷呀!
不会是WIN2000的SP3的问题吧
关注
ON ERROE RESUME NEXT。
程序启动时,就算端口已经打开,不会报错。
同意:golden24kcn(不甜)的寫法!
對於有些朋友在程序中端口出現錯誤用on error來處理,解決guosheng (郭盛)的問題,不是根本的辦法.如果每次都是正常關弊端口,應該不會出現上述問題.
個別情況下出現,可以用on error
只要使用MSComm1.RTSEnable = True而串口未与其他设备连接就出现此现象,
删除此句或连接RTS/CTS至另一串口互发数据都可消除此现象。
golden24kcn(不甜)的回答不行,因为此时确实MSComm1.PortOpen=False,但执行Mscomm1.PortOpen=True时既显示错误8005,端口已打开 。
liuyanghe111(yang) 用错误陷阱,表面上没事,程序不报错,
但实际上端口没打开,该干的活都干不了。
不管怎么样,感谢大家的参与与回答。