我正在制作一个处理登录的健身房管理网络应用程序。会员在标签上有条形码,当他们到达健身房时会扫描。
我听说大多数条形码扫描仪只是用作键盘。这将要求扫描页面在打开条形码时打开并在前台。
如果它只是一个键盘,我如何将条形码扫描仪输入发送到计算机上运行的单个后台进程,并让所有可能关注的进程忽略它?
答案 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