C#+ USB条形码阅读器

时间:2013-07-04 16:54:58

标签: c# barcode

如何在C#应用中阅读背景中的条码文字?我用谷歌搜索但没有用。 stackoverflow上的其他资源并不接近我所需要的。我想在后台阅读条形码。我想知道数据是来自条形码还是键盘。如果数据来自条形码,则即使文本框突出显示,也不得在文本框中显示。我有类似的stackoverflow代码,但如果窗口中有文本框,则文本框将包含条形码数据;我不想要的。 链接:get barcode reader value form background monitoring

    DateTime _lastKeystroke = new DateTime(0);
    List<char> _barcode = new List<char>(10);

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        // check timing (keystrokes within 100 ms)
        TimeSpan elapsed = (DateTime.Now - _lastKeystroke);
        if (elapsed.TotalMilliseconds > 100)
            _barcode.Clear();

        // record keystroke & timestamp
        _barcode.Add(e.KeyChar);
        _lastKeystroke = DateTime.Now;

        // process barcode
        if (e.KeyChar == 13 && _barcode.Count > 0) {
            string msg = new String(_barcode.ToArray());
            MessageBox.Show(msg);
            _barcode.Clear();
        }
    }

2 个答案:

答案 0 :(得分:2)

大多数条形码扫描仪只是作为键盘输入,快速/简单的解决方法是将文本框置于“视线外”。一个例子是这样的:

// Pseudo code (could be Web, Windows etc)
public void Form1_Load()
{
    txtBarcodeScanner.Top = -10000;
    txtBarcodeScanner.Left = -10000;
    txtBarcodeScanner.Width = 10;
    txtBarcodeScanner.Height = 10;
    txtBarcodeScanner.Focus();
}

这样输入就可以被txtBarcodeScanner捕获,但是不可见,并且条形码不会被捕获但会触发KeyDown等。

答案 1 :(得分:0)

键盘等条形码设备。

1输入条形码时,按f12

2插入条形码后按下了输入

private void textbox_Keydown(object sender, KeyEventArgs e)
{
   if(e.KeyCode == Keys.F12){
    Textbox.Focus();
   }
   if(e.KeyCode == Keys.Enter){
     /// after enter barcode
     /// save 
   }

}