条码扫描仪和WPF应用程序(Barcode scanner with a WPF applicati

2019-09-26 08:01发布

我有连接到我的电脑条码扫描器(蓝牙),使用扫描条码一些。 扫描仪的行为完全像一个键盘不和任何它扫描的回报。 在我的WPF应用程序,我有一些文本框供用户手动在产品编号,版本号,箱号和批号输入。

我想用户能够代替扫描QR /酒吧? 代码,具有极其重要的它在任何时间的信息。 所以,我有几个问题:

  1. 是否有可能扫描在应用中的任何东西与你的重点条形码和不写出来像一个键盘? 例如,我有一个随机的文本框现在突出,但我去扫描代码 - 我不想代码填写此随机文本 - 像所有的扫描文本进入一个变量我想要的东西。

  2. 如果第1步是不可能的。 目前,我有它设置的方式是你需要点击到一个特定的文本框中。 这在框TextChanged会分析它,并试图找出其中的作品需要去。 但是,当每个字符被添加到盒子就会触发。 我每码约〜30个字符,所以这将极大地慢下来。 我想看看有什么其他事件可能工作,但我没有看到任何其他解决这一问题? 有没有办法,我只是缺少一些其他的活动吗?

谢谢

Answer 1:

我不想条形码,以填补随机文本框 - 我希望所有的扫描QR /条码到一个变量。

private string barCode = string.Empty; //TO DO use a StringBuilder instead
private void Window_Loaded(System.Object sender, System.Windows.RoutedEventArgs e)
{
    MainWindow.PreviewKeyDown += labelBarCode_PreviewKeyDown;
}

private void labelBarCode_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if ((44 == e.Key)) e.Handled = true;
    barCode += e.Key;
    //look for a terminator char (different barcode scanners output different 
    //control characters like tab and line feeds), a barcode char length and other criteria 
    //like human typing speed &/or a lookup to confirm the scanned input is a barcode, eg.
    if (barCode.Length == 7) {
       var foundItem = DoLookUp(barCode);
       barCode = string.Empty;
    }
}

见更新,截至2019三月: https://stackoverflow.com/a/55411255/495455



文章来源: Barcode scanner with a WPF application