求助:用VB6或VB.NET制作获取扫描枪输入的后台程序

srd109502 2019-12-25 09:59:38
要求这个程序不是当前激活的应用程序,但是能够获取扫描枪读取内容;并区分键盘输入。
条形码内容为*KPE2191200001W*。
本人论坛小白,程序新手;请求各位大神帮忙。
...全文
693 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36613715 2020-02-16
  • 打赏
  • 举报
回复 1
路过这里,希望你能找到很好的答案。。。
weixin_43405952 2020-02-04
  • 打赏
  • 举报
回复
引用 3 楼 jhonsonzhang 的回复:
先给个解决问题的链接https://blog.csdn.net/weixin_33691598/article/details/91659687
之所以回复楼主这个帖子,是因为我07年时候用vs2005\vb.net写过类似程序,当时是用的easyhook(这个记得)。那个代码早已不记得,而且那时候用的IDE硬盘都不知到哪儿去了。链接里的代码,大致看了下,貌似跟我当时写的差不多。但最勾引我回忆的是:当时我写那个东西的趣事。
那时,我们当地有个做郎酒的区域代理商遇到物流时候的大问题,一个集装箱过来,包装都差不多,标识是条码,必须用扫描枪去扫,才能分类,但扫描枪扫出来都是条码,不是商品的类别和价格,这老板头就大了,找了个打字部,把条码对应的商品属性打印出来,然后卸货时候,派个仓管在那儿扫,然后对应打印出来的卡片,然后指定仓库里的货位。基本就是全人工,而且最让他郁闷的是,到底这些货的统计,万一有人在里面做手脚,比如低价位的酒弄到高价位的货区去,他损失就大了(他必须按高价位付钱)。而且效率很低,有时负责扫描的发卡的时候,卸货工就得扛着货物在那儿排队等着。现在回想那时,物流系统和品牌渠道系统可以说都没成熟的。当时凑巧他的一个门店经理跟我老婆是闺蜜,我那时还在政府部门上班,知道我能编点代码,就找到我了。那时我把电脑直接搬到他仓库现场开发了好几个小时,老婆抱着孩子跟她闺蜜一直在旁边陪我。最后效果:扫描枪扫描以后,直接商品所有属性全部出来,并且自动统计。当时,那老板就让门店经理给了我老婆一个信封,回家一看居然是2000元整,当时我正工资才1055.我们当时就去超市给孩子买了几件多美滋奶粉。印象极其深刻。结果还没完,后来这老板又托门店经理在快过年时候,给我送了2件红花郎和一件小郎酒(歪嘴郎)到家里来,放下就走了,头也不会。这个事件,让我印象太深刻了。看到这个贴,完全让我回忆起来,特此调侃下。
实际上这样的机会不是人人都有的。我做零售那会也经常要统计数据,于是想做个程序,让数据统计轻松些。最后是做出来了,但已经不干那份工了,受不了丢东西的困扰,每个月总要自己倒贴一些钱。
zzc6913 2020-01-07
  • 打赏
  • 举报
回复
扫描枪分两种模式,一种是模拟键盘,一种是模拟串口的。模拟键盘的是即插即用的,与键盘是天然冲突。无法做到100%避免。因为是模拟键盘,怎么都会与键盘冲突。因为程序分不清键盘和扫枪。因为他们都是走USB的。我们之前的解决方案是把扫枪换成模拟串口形式,这个需要装驱动,然后调用驱动的dll即可。也很简单。这样可以准确识别串口,程序里写死都可以。很方便。但是有一个问题就是扫枪的厂家必须提供支持模拟串口的扫枪。一般情况扫枪都是支持模拟串口的。有些便宜的扫枪为了省成本可能会只支持模拟键盘。改成模拟串口后不存在键盘冲突问题了。可以100%避免。当程序调用的是驱动中模拟串口的dll时,程序不用是当前激活的应用程序,扫枪的驱动会激活程序运行。
srd109502 2020-01-02
  • 打赏
  • 举报
回复
谢谢两位大神,本小白先研究一下,有问题再请教大神。
jhonsonzhang 2019-12-31
  • 打赏
  • 举报
回复
先给个解决问题的链接https://blog.csdn.net/weixin_33691598/article/details/91659687 之所以回复楼主这个帖子,是因为我07年时候用vs2005\vb.net写过类似程序,当时是用的easyhook(这个记得)。那个代码早已不记得,而且那时候用的IDE硬盘都不知到哪儿去了。链接里的代码,大致看了下,貌似跟我当时写的差不多。但最勾引我回忆的是:当时我写那个东西的趣事。 那时,我们当地有个做郎酒的区域代理商遇到物流时候的大问题,一个集装箱过来,包装都差不多,标识是条码,必须用扫描枪去扫,才能分类,但扫描枪扫出来都是条码,不是商品的类别和价格,这老板头就大了,找了个打字部,把条码对应的商品属性打印出来,然后卸货时候,派个仓管在那儿扫,然后对应打印出来的卡片,然后指定仓库里的货位。基本就是全人工,而且最让他郁闷的是,到底这些货的统计,万一有人在里面做手脚,比如低价位的酒弄到高价位的货区去,他损失就大了(他必须按高价位付钱)。而且效率很低,有时负责扫描的发卡的时候,卸货工就得扛着货物在那儿排队等着。现在回想那时,物流系统和品牌渠道系统可以说都没成熟的。当时凑巧他的一个门店经理跟我老婆是闺蜜,我那时还在政府部门上班,知道我能编点代码,就找到我了。那时我把电脑直接搬到他仓库现场开发了好几个小时,老婆抱着孩子跟她闺蜜一直在旁边陪我。最后效果:扫描枪扫描以后,直接商品所有属性全部出来,并且自动统计。当时,那老板就让门店经理给了我老婆一个信封,回家一看居然是2000元整,当时我正工资才1055.我们当时就去超市给孩子买了几件多美滋奶粉。印象极其深刻。结果还没完,后来这老板又托门店经理在快过年时候,给我送了2件红花郎和一件小郎酒(歪嘴郎)到家里来,放下就走了,头也不会。这个事件,让我印象太深刻了。看到这个贴,完全让我回忆起来,特此调侃下。
良朋 2019-12-26
  • 打赏
  • 举报
回复
区分键盘输入你再百度吧
良朋 2019-12-26
  • 打赏
  • 举报
回复

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
InitSerialPort()
End Sub


Dim strIncoming As String
Dim RS232 As SerialPort
Private Sub InitSerialPort()


RS232 = New SerialPort("COM10", 9600, Parity.None, 8, 1)
If (Not RS232.IsOpen) Then
RS232.Open()
End If
Dim td As Thread = New Thread(AddressOf serialPort1_DataReceived)
td.Start()
End Sub

Private Sub serialPort1_DataReceived()
While True


If RS232.BytesToRead > 0 Then
strIncoming = RS232.ReadExisting.ToString
RS232.DiscardInBuffer()
Invoke(New EventHandler(AddressOf ForDisplay)) '调用接收数据函数
End If

End While
End Sub

Private Sub ForDisplay()
ListBox1.Items.Add(strIncoming) '取到回车符位置数-1
ListBox1.SelectedIndex = ListBox1.Items.Count - 1
If ListBox1.Items.Count > 1000 Then
Me.ListBox1.Items.Clear()
End If
End Sub

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧