gpt4 book ai didi

c# - 获取条码读取器值表单后台监控

转载 作者:可可西里 更新时间:2023-11-01 09:01:18 27 4
gpt4 key购买 nike

我想用 C# 语言创建一个会计程序。我想使用条形码阅读器在商店中搜索产品(这对我的程序来说是可选的)现在,如果卖家使用条形码阅读器,则在主要形式中获取处理方法或事件的条形码值;如何在处理方法或事件的表单(无文本框)背景中获取条形码值?

注意:我的条码阅读器是HID(USB接口(interface))

最佳答案

条形码设备的行为类似于键盘。当您在文本框中获得焦点时,它会将字符发送到文本框,就像您从键盘输入它们一样。

如果您不想使用文本框,则需要订阅键盘事件处理程序来捕获条码流。

Form1.InitializeComponent():

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

处理程序和支持项:

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

您必须跟踪“击键”并留意通过条形码流发送的“回车”。这可以很容易地在数组中完成。要区分用户击键和条形码击键,您可以使用的一个肮脏技巧是跟踪击键的时间。

例如,如果您收到以回车结束的间隔小于 100 毫秒的击键流,您可以假定它是条形码并进行相应处理。

或者,如果您的条码扫描仪是可编程的,您也可以发送特殊字符或序列。

关于c# - 获取条码读取器值表单后台监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10850050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com