用C#编写条形码扫描仪程序

本文关键字:扫描仪 程序 条形码 | 更新日期: 2023-09-27 18:22:41

我需要为一家公司开发一个简单的考勤系统。我对用C#开发这个软件很感兴趣,因为我听说.NET框架提供了条形码扫描仪库,这使得这项任务更容易。我得到了AURORA的条形码扫描仪。我已经用我的系统配置了这个扫描仪,当我在它之前刷卡时,它会读取。我不知道如何获取条形码信息!!这对我来说是一项全新的任务,我不知道可以用什么方法来读取条形码。我知道Scaner通常以字符串形式读取数据,将其保存在剪贴板中并粘贴到活动编辑框或任何它活动的内容。例如,如果我打开记事本和扫描卡,在记事本中我会看到数字00004(我认为这是条形码)
我有几个问题:
1.读取出现在editbox上的条形码值的最佳方式是什么(我的应用程序将有一个editbox),我需要控制Scanner Event,使其不应通过iteself将条形码值粘贴到editbox中,而不是我将使用该值
2.当有人刷卡时,触发事件的代码是什么
请提供一些工作示例代码(C#)。我们将非常感谢您的帮助。

public partial class Form1 : Form
{
    SerialPort _serialPort;
    // delegate is used to write to a UI control from a non-UI thread
    private delegate void SetTextDeleg(string text);
    private void Form1_Load(object sender, EventArgs e)
    {
        // all of the options for a serial device
        // can be sent through the constructor of the SerialPort class
        // PortName = "COM1", Baud Rate = 19200, Parity = None, 
        // Data Bits = 8, Stop Bits = One, Handshake = None
        _serialPort = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
        _serialPort.Handshake = Handshake.None;
        _serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
        _serialPort.ReadTimeout = 500;
        _serialPort.WriteTimeout = 500;
        _serialPort.Open();
    }
    private void btnStart_Click(object sender, EventArgs e)
    {
        // Makes sure serial port is open before trying to write
        try
        {
            if (!_serialPort.IsOpen)
                _serialPort.Open();
            _serialPort.Write("SI'r'n");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
        }
    }
    void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        Thread.Sleep(500);
        string data = _serialPort.ReadLine();
        this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object[] { data });
    }
    private void si_DataReceived(string data)
    {
        textBox1.Text = data.Trim();
    }
    private TextBox textBox1;
    private Label label1;
    private RichTextBox richTextBox1;
    private Button button1;
}

用C#编写条形码扫描仪程序

通常,MSR(Magnetric Stripe Readers)会将输出转储到STDIN,这意味着它的作用就像键盘。

您必须在应用程序中捕获键盘事件,以便它读取数据,从这一点开始。

BTW:

在索取样本之前,您的尝试编写一些代码怎么样?