vb.net 读取扫描枪USB接口数据的实例
USB比较难抓数据,建议是USB模拟串口,或者直接就是串口,这样数据比较好抓。
USB上传模式是鼠标光标在哪数据就上传在哪,所以你抓USB的数据的很难!
X猫-思刊办公专营店
我有一个扫描枪,通过USB与电脑连接且显示为COM2。我想通过VB窗体的按钮来控制扫描枪的触发请问怎样实现?
1,为什么不通过扫描枪扫描条码来触发你程序里面的事件?
2,通过软件来控制扫描枪的触发有什么意义?
3,扫描枪就是一个模拟键盘输入设备,你可以把扫描枪想象为一个键盘,此时你要求实现的功能可以理解为控制一个键盘是否允许输入而已。如果你一定要这么干,那么程序里面直接控制com口的通断即可。没必要搞的那么复杂。
请问vb程序如何获取扫描数据?
扫描器会有驱动程序把扫描后得到的数据输出,你只要接收现成的数据就可以了
用VB写端口映射代码 越简单越好
Option Explicit
Dim bMsg() As Byte
Private Sub Form_Load()
Dim strCTemp As String
Dim intCPTemp As Variant
'侦听端口
Winsock1.LocalPort = 2000
Winsock1.Listen
'向Sphere转发数据
Winsock2.RemoteHost = "127.0.0.1"
Winsock2.RemotePort = 2001
Winsock2.Connect
Do While Winsock2.State 7
If Winsock2.State = 9 Or Winsock2.State = 0 Then Winsock2.Close: Exit Do
Select Case Winsock2.State
Case 1
strCTemp = "已打开!"
Case 2
strCTemp = "正在侦听.."
Case 3
strCTemp = "与服务器连接挂起!"
Case 4
strCTemp = "正在识别主机.."
Case 5
strCTemp = "已识别主机!"
Case 6
strCTemp = "正在与服务器连接.."
Case 8
strCTemp = "同级人员正在关闭连接.."
Case 9
strCTemp = "出错"
Winsock2.Close
End Select
If Winsock2.State intCPTemp Then
intCPTemp = Winsock2.State vbCrLf
Text1.Text = Text1.Text strCTemp vbCrLf
End If
DoEvents
Loop
If Winsock2.State = 7 Then
Text1.Text = Text1.Text strCTemp "已成功连接上服务器..." vbCrLf
End If
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
ReDim bMsg(bytesTotal)
Winsock1.GetData bMsg
Text1.Text = Text1.Text bytesTotal vbCrLf
Text1.SelStart = Len(Text1.Text)
Winsock2.SendData bMsg
End Sub
Private Sub Winsock2_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Text1.Text = Text1.Text "Winsock2出错!" vbCrLf
End Sub
Private Sub Winsock2_SendComplete()
Text1.Text = Text1.Text "向Sphere发送了数据.." vbCrLf
End Sub
Private Sub Winsock2_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long)
Text1.Text = Text1.Text "向Sphere发送了" bytesSent "数据.." vbCrLf
End Sub
0条大神的评论