当前位置:编程学习 > VB >>

扫条码不能触发MSComm_OnComm()事件,鼠标不能动,没死机

但昨天没有USB接口的键盘,测试了下面的代码,一切正常。今天买了块USB接口的键盘,运行代码时,MSComm控件不触发onComm事件,说明MSComm控件没有接收到从条码形传输过来的数据。而且鼠标在使用条码仪后也不能动。求助各位高人,望指点,赐教。
Private Sub Form_Load()
With MSComm1
.CommPort = 1
.RThreshold = 13
.InputLen = 13
.InBufferCount = 0
.InBufferSize = 1024
.InputMode = comInputModeText
.PortOpen = True
End With
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Text1.Text = MSComm1.Input
List1.AddItem Strcom
MSComm1.InBufferCount = 0
End Select
End Sub --------------------编程问答-------------------- LZ:OnComm事件中未见Strcom的赋值句,如果Text1.Text无任何显示(包含乱码),则可能属于端口冲突.

--------------------编程问答--------------------
条码枪是串口通讯的吗?
--------------------编程问答-------------------- 现在的条码枪基本上都是和键盘输入一样啊,不用做任何处理,难道你用的是插串口上的? --------------------编程问答-------------------- 1、首先使用串口调试器试一试,看看是不是硬件冲突造成的。
2、如果不是硬件冲突,再查看自己的程序。

再者,你的程序似乎有些问题,看看这个行不?

Private Sub Form_Load()
With MSComm1
.CommPort = 1
.RThreshold = 1
.InputLen = 13
.InBufferCount = 0
.InBufferSize = 1024
.InputMode = comInputModeText
.PortOpen = True
End With
End Sub

Private Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent
        Case comEvReceive
            Mscomm1.RThreshold = 0
            Sleep 10 'API函数,等待10ms,需要你自己添加声明
            Text1.Text = MSComm1.Input
            'List1.AddItem Strcom
            MSComm1.InBufferCount = 0
            MSComm1.RThreshold = 1
    End Select
    
End Sub
--------------------编程问答--------------------
引用 2 楼 of123 的回复:
条码枪是串口通讯的吗?

有USB口的。。。如果是COM口。。。建议查看COM的设置是否和条码枪一样。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,