vb.net扫描仪 扫描仪的代码

vb.net代码,扫描仪你的想法很难实现 。重写驱动难度相当大 。
如果我是你的话,我会和客户讲明难度,并推荐代替方案 。
扫描还是用原本驱动进行扫描 , 保存图片是保存到制定目录 。
开发的应用系统监测制定目录 , 并图本地文件进行保存数据库 。
这样就很容易做了 。
VB.NET TEXTBox控件我想控制它只能用扫描枪读资料不能让用户输入资料在TEXTBox的属性找到ReadOnly,设置为TURE
还有一个方法是用Lable不用Textbox
==========================================
就是我尝试设置为ReadOnly设置为TURE
执行以下代码
TextBox1.Text = "123"
在在TEXTBOX能成功显示能够成功显示123
vb.net 读取扫描枪USB接口数据的实例USB比较难抓数据,建议是USB模拟串口,或者直接就是串口,这样数据比较好抓 。
USB上传模式是鼠标光标在哪数据就上传在哪 , 所以你抓USB的数据的很难!
X猫-思刊办公专营店
怎样用VB把一张图片透明的放到Picture里,在线等Public Function TranBlt(DestHdc As Long, X As Long, Y As Long, W As Long, H As Long, srcHdcOrBmp As Long, Optional srcX As Integer, Optional srcY As Integer, Optional srcW As Long, Optional srcH As Long, Optional tc As Long = -1, Optional IsBmp As Boolean) As Long
'srcHdcOrBmp参数 传入vb.net扫描仪的可以是hdc也可以是Bmp对象的Handlevb.net扫描仪 ,
'IsBmp参数 为真时srcHdcOrBmp代表Bmp对象的Handlevb.net扫描仪 , 为假时代表hdc
'返回值 成功时返回透明色 , 不成功时返回-1
Dim tHdc(3) As MemHdc
Dim J As Long, oc As Long, I As Long, Bm As BITMAP, cc As Long, NewDc As Long
Dim sw As Long, sh As Long, sBmp As Long, sHdc As Long, obm As Long, NewX As Long, NewY As Long
If DestHdc = 0 Or srcHdcOrBmp = 0 Or W = 1 And H = 1 Then GoTo fail
If IsBmp Then'若传入的是Bmp句柄 , 需为其创建一个临时DC
sBmp = srcHdcOrBmp
tHdc(3) = NewMyHdc(DestHdc, 0, 0, srcHdcOrBmp)
sHdc = tHdc(3).hdc
Else
sHdc = srcHdcOrBmp
If srcW = 0 Then sBmp = GetCurrentObject(sHdc, 7)
End If
If sHdc = 0 Or sBmp = 0 Then GoTo fail
If srcW = 0 Then'若没有提供源图大小 , 需取得整个源图大小
GetObj sBmp, Len(Bm), Bm
sw = Bm.bmWidth - srcX
sh = Bm.bmHeight - srcY
Else
sw = srcW
sh = srcH
End If
If sw1 Or sh1 Then GoTo fail
If tc = -1 Then
cc = GetPixel(sHdc, srcX, srcY)'将左上角第一个像素作为源图背景色,用于透明
Else
cc = tc
End If
If Wsw Or Hsh Then
tHdc(2) = NewMyHdc(DestHdc, W, H)
StretchBlt tHdc(2).hdc, 0, 0, W, H, sHdc, srcX, srcY, sw, sh, vbSrcCopy
'先将源图缩放,下面步骤就一样了 。
NewDc = tHdc(2).hdc
Else
NewDc = sHdc
NewX = srcX
NewY = srcY
End If
BitBlt DestHdc, X, Y, W, H, NewDc, NewX, NewY, vbSrcInvert
'将源图先反色(XOR)绘入目标图 , 若源图背景为黑色,此步可省
'下面是制作Mask图的方法
I = CreateBitmap(W, H, 1, 1, ByVal 0)'建立单色位图
tHdc(0) = NewMyHdc(DestHdc, 0, 0, I)'为单色图建立新DC,并选入
tHdc(1) = NewMyHdc(DestHdc, W, H)'另建一个彩色图及DC,用于存放Mask图
oc = SetBkColor(NewDc, cc)'将源图背景色改为透明色
BitBlt tHdc(0).hdc, 0, 0, W, H, NewDc, NewX, NewY, vbSrcCopy
'先将源图绘入单色DC,由此产生只有正反的Mask图,背景色(透明色)为黑 , 其它为白
SetBkColor NewDc, oc'恢复源图背景色,不是必须的,但这是个好习惯 。
BitBlt tHdc(1).hdc, 0, 0, W, H, tHdc(0).hdc, 0, 0, vbSrcCopy
'单色DC必须复制进彩色DC才能进行后面的的AND运算
'Mask图完成,并已放入彩色DC
BitBlt DestHdc, X, Y, W, H, tHdc(1).hdc, 0, 0, vbSrcAnd'标准透明绘图vb.net扫描仪:选将Mask图用And运算绘入 ,
BitBlt DestHdc, X, Y, W, H, NewDc, NewX, NewY, vbSrcInvert '再将源图以反色(XOR)绘入一次
DelMyHdc tHdc(0)
DelMyHdc tHdc(1)
If tHdc(2).hdc0 Then DelMyHdc tHdc(2)
If tHdc(3).hdc0 Then DelMyHdc tHdc(3)
TranBlt = cc
Exit Function
fail:
If tHdc(3).hdc0 Then DelMyHdc tHdc(3)
TranBlt = -1
End Function
Private Function NewMyHdc(dHdc As Long, W As Long, H As Long, Optional Bm As Long) As MemHdc
With NewMyHdc
.hdc = CreateCompatibleDC(dHdc)
If Bm = 0 Then
.Bmp = CreateCompatibleBitmap(dHdc, W, H)
Else
.Bmp = Bm
End If
.obm = SelectObject(.hdc, .Bmp)
End With
End Function
Private Function DelMyHdc(MyHdc As MemHdc, Optional nobmp As Boolean) As MemHdc
With MyHdc
If .hdc0 And .obm0 Then SelectObject .hdc, .obm
If nobmp = False And .Bmp0 Then DeleteObject .Bmp
If .hdc0 Then DeleteDC .hdc
End With
End Function
把这个函数放在一个BAS里,然后在窗体里
TranBlt pic.hdc, X,Y,W,H,PIC2.Picture.Handle, _
TX,TY,TW,TH, , True
就OK
用winform程序怎样连接打印机和扫描仪就是分少了点,本身这个问题就应该这么解决,用打印控件可以是可以,更繁琐,你们不觉得吗?因为他有二维码,如果使用打印控件那我们要先生成二维码图片,然后存在系统路径 , 然后报表去找路径,对应的参数更环保显示二维码 , 批量打印下来,你说程序效率该有多差 。我之前也这么做过,现在感觉好傻 。.NET可以用printDecument来完成打印操作,十分方便 。也可以用VB接口提供的printForm功能 。这里我传一个条形码、二维码批量打印、预览、设计的例子你看一下就明白了 , 上面的界面完全可以放在Panel中绘制,连续打印Panel就OK 。自动会生成预览、并发打印批量处理 。微软其实报表控件做的十分失败 , PrintDecument其实还不错的
【vb.net扫描仪 扫描仪的代码】vb.net扫描仪的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于扫描仪的代码、vb.net扫描仪的信息别忘了在本站进行查找喔 。

    推荐阅读