我有一个即插即用的条形码扫描仪。条形码扫描器在光标位置返回数据(作为HID设备)。可以从具有焦点的任何应用程序捕获数据。我的应用程序中没有文本框,因此无法将注意力集中在我的应用程序上,并且必须仅在我的应用程序中捕获数据(Windows窗体)。我不知道我应该从哪里开始。任何帮助都会有所帮助。
代码就像现在一样
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); //I get Value here
barcode.Clear();
}
}
这很好用。但问题是当我的表格处于焦点时我得到的数据我可以使用它。但是当我的表单没有焦点时,意味着如果它被最小化或者其他应用程序被打开,我就不会得到数据