我单位日常管理经常用到二维码,我就想用VB做一个二维码管理的软件。

新米米 2014-01-06 08:39:32
从网上买了一个二维码读取器,VB的开发包也要了。却发现一个问题。
用普通的接口驱动程序连接上,打开一个TXT,然后扫一下,应该是带回车和换行的,每扫一个码,光标会自动到下一行的开始处。再就是时间有间隔,扫完一个件,把件还放在扫描仪上,扫码仪过一秒或半秒种再次扫描一次。用厂方提供的VB的开发包不行了,手拿着件很快的往上一放,就连着扫3下,不厌其烦。好像是扫描速度过快。后来好不容易弄明白了。就是红字的地方,那个地方把引擎打开了,然后引擎就一直开着,就很高速的扫描。解决方法是得写一个循环或是间歇的程序,让这个引擎一开一关,或是延时运行,让它减慢扫描的速度。但怎么实现,这研究了三天,实在是没招了,来向各位前辈求教求教,顿首。



Private bytByte(0 To 2000) As Byte

Private Sub Command1_Click()
ReleaseLostDevice
Unload Me
End Sub

Private Sub Form_Load() '查找设备
If GetDevice = 1 Then
If StartDevice = 1 Then '启动设备
setQRable 1 '启动QR引擎

SetBeepTime 1000 '设置扫描蜂鸣声
Else
MsgBox "启动设备失败"
End If

Else
MsgBox "获取设备失败"
End If

End Sub


Private Sub Label2_Change()

If Label2 = "85" Then Label1 = "王"
If Label2 = "41" Then Label1 = "望"
If Label2 = "44" Then Label1 = "泰"
If Label2 = "83" Then Label1 = "山"
If Label2 = "64" Then Label1 = "高"
If Label2 = "40" Then Label1 = "日"
If Label2 = "43" Then Label1 = "黄"
If Label2 = "42" Then Label1 = "昭"
If Label2 = "05" Then Label1 = "日"
If Label2 = "61" Then Label1 = "大"
If Label2 = "52" Then Label1 = "所"
If Label2 = "82" Then Label1 = "石"
If Label2 = "45" Then Label1 = "秦"
If Label2 = "84" Then Label1 = "任"
If Label2 = "47" Then Label1 = "地"
If Label2 = "49" Then Label1 = "南"
If Label2 = "63" Then Label1 = "后"
If Label2 = "81" Then Label1 = "小"
If Label2 = "56" Then Label1 = "三"
If Label2 = "50" Then Label1 = "西"
If Label2 = "48" Then Label1 = "两"
If Label2 = "62" Then Label1 = "万"



End Sub



Private Sub Text1_Change()
Label2 = Mid(Text1, 9, 2)
Text1.Text = ""

End Sub




'间隔1秒
Private Sub Timer1_Timer()
GetDecodeString bytByte(0)
Text1 = Text1 + ByteToStr(bytByte)
End Sub
...全文
297 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-01-08
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。
新米米 2014-01-06
  • 打赏
  • 举报
回复
后来没有办法,只好服气,又直接用它的通用驱动又做了一个通用驱动版的。(通用驱动版有好处,不用窗口本身调用DLL,省事)但是也不行。每次扫描的时候,在label1里边都读不出东西来,经过研究发现,是因为用开发包来扫描读取的时候,是把整串二维码信息做为一整条数码一下子放到TEXT1里边,所以可以用来提取和识别。 而我用通用的驱动是将二维码扫码器扫出来的一整串信息做为键盘输入的信息,一个字一个字的填上去的。所以每填一个字,就被消掉了,所以在label1里边什么东西也读不出来(标示为红色的那一行)。 现在的问题是,怎么样才能让Text1里边的信息,在读取、识别完成之后自动消失,以进行下一条的扫描录入,又保持Text1的焦点状态,又能够让信息输入完成呢。。 Private Sub Command1_Click() End End Sub Private Sub Label2_Change() If Label2.Caption = "85" Then Label1 = "王" If Label2.Caption = "41" Then Label1 = "望" If Label2.Caption = "44" Then Label1 = "泰" If Label2.Caption = "83" Then Label1 = "山" If Label2.Caption = "64" Then Label1 = "高" If Label2.Caption = "40" Then Label1 = "日" If Label2.Caption = "43" Then Label1 = "黄" If Label2.Caption = "42" Then Label1 = "昭" If Label2.Caption = "05" Then Label1 = "日" If Label2.Caption = "61" Then Label1 = "大" If Label2.Caption = "52" Then Label1 = "涛" If Label2.Caption = "82" Then Label1 = "石" If Label2.Caption = "45" Then Label1 = "秦" If Label2.Caption = "84" Then Label1 = "任" If Label2.Caption = "47" Then Label1 = "河" If Label2.Caption = "49" Then Label1 = "南" If Label2.Caption = "63" Then Label1 = "后" If Label2.Caption = "81" Then Label1 = "小" If Label2.Caption = "56" Then Label1 = "三" If Label2.Caption = "50" Then Label1 = "西" If Label2.Caption = "48" Then Label1 = "两" If Label2.Caption = "62" Then Label1 = "万" End Sub Private Sub Text1_Change() Label2 = Mid(Text1, 9, 2) Text1.Text = "" Text1.SetFocus End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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