【问题标题】:bar code scanning with vb.net使用 vb.net 进行条码扫描
【发布时间】:2012-07-17 07:58:56
【问题描述】:

我正在做 1 个桌面应用程序。 我想在此添加条码读取功能。 在我的应用程序中,所有产品的价格标签中都会有条形码。 我将使用一些条形码扫描仪进行扫描。 但我对所有这些一无所知。 任何人都可以为此提供apme示例代码或一些参考吗?

【问题讨论】:

  • 您有硬件条码扫描器还是不想使用摄像头和图像处理?
  • @TEAM-ALPHA- 我将为此使用硬件设备..客户端稍后会给我们...首先我必须收集代码。我已经搜索了很多..但无法得到一些结果
  • 设备使用什么接口? PS/2 或 COM(可能是 USB 上的虚拟 COM)?
  • 我将通过 USB 使用 COM
  • 您是否使用 TWAIN 来处理扫描部分?条码扫描仪是否支持 TWAIN?如果是,您可以使用 TWAIN 规范中提供的 ICAP_BARCODEDETECTIONENABLED 来打开该功能。 twain.org/scannerdriverdevelopers/specification-and-tools.html

标签: c# vb.net barcode


【解决方案1】:

大多数可用的条形码扫描仪都模拟键盘。它们带有配置条形码,可让您对其进行配置以执行不同的操作,例如在扫描后在代码末尾包含回车符。因此,一旦您扫描了一个代码,它就会出现在屏幕上,就好像它是被输入的一样(例如,如果一个文本框有焦点)。

【讨论】:

  • 不需要代码。它模拟键盘。这意味着,当扫描仪读取一组字符时,它会将这些字符发送到伪装成键盘的计算机。试一试,插入条形码扫描仪并打开文本编辑器(例如记事本)。扫描条码,代码就会出现在编辑器窗口中。
  • vb.net 表单我该怎么办?
  • 你说它是 USB 上的 com,但对于 ps2,只需制作一个 TextBox 并在文本更改时注册一个事件,在事件中查看它是否是换行符,然后你就得到了条形码跨度>
【解决方案2】:

对于通过 USB 的 COM,您需要 COM 端口号(在您的设备管理器中查看),比如说 COM15 使用 VB.net 使用 System.IO.Ports.SerialPort 类:

Dim comPort As New SerialPort("COM15") 'New com port'
Dim terminatingChar As Char = Chr(10) 'Terminate at vbLF (new line)'

comPort.BaudRate = 9600 '9600 baud speed'
comPort.Encoding = Encoding.ASCII 'Decode the bytes via ASCII code'

comPort.Open() 'Open the port'

Dim myBarcode as String = "" 'Current barcode is empty'

While True'Read chars until the terminating char appears'
    Dim tempChar as Char = Convert.ToChar(comPort.ReadChar()) 'Read a char'
    If tempChar = terminatingChar Then Exit While 'If its the terminating char, exit the loop'
    myBarcode = myBarcode & tempChar 'If not append it to the barcode string'
End While

comPort.Close() '(!) Close the port'

Console.WriteLine(myBarcode.Trim()) 'Trim it and show it to the user'

【讨论】:

  • 注意:它可能会变得比这更复杂,因为条形码扫描仪可以配置任意数量的终止字符,在这种情况下,您需要将自己收到的字符串拆分为代码。这也假设条形码扫描仪使用默认的 COM 端口设置 9600,8,n,1,这也可以更改。
  • 我编辑了我的帖子,以便您可以更改波特率、编码和终止字符(在本例中为空格字符),我不确定这是否是有效的 vb.net 代码,我停止编程 vb自 3 年以来
  • 你的While循环无效,ReadChar返回一个整数而不是一个字符加上终止符可能不止一个字符CR+LF很常见
  • ok while 循环应该(我认为)是While True,而 CR+LF 并不重要,因为您可以修剪 CR 并在 LF 处终止。整数到 char 现已修复
猜你喜欢
  • 2021-04-05
  • 2014-11-04
  • 1970-01-01
  • 2022-11-08
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多