是否可以将条形码扫描到后台进程中?

时间:2017-05-07 18:06:47

标签: io device background-process barcode barcode-scanner

我正在制作一个处理登录的健身房管理网络应用程序。会员在标签上有条形码,当他们到达健身房时会扫描。

我听说大多数条形码扫描仪只是用作键盘。这将要求扫描页面在打开条形码时打开并在前台。

如果它只是一个键盘,我如何将条形码扫描仪输入发送到计算机上运行的单个后台进程,并让所有可能关注的进程忽略它?

1 个答案:

答案 0 :(得分:0)

我发现了一个有趣的帖子,其中包含一个简单的解决方案:

在表单构造函数

InitializeComponent():
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);

Handler&配套项目:

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();
    }
}

致谢:@ltiong_sh

原帖:Here