捕获从磁卡读卡器到变量的输入

时间:2011-03-24 00:55:15

标签: c# winforms magnetic-cards

我似乎无法找到一种方法来捕获磁卡读卡器的输入。当它滑动时,输入进入活动文本编辑器,就像说记事本一样。

不幸的是,对文本框字段的关注不会起作用,因为我需要将其设为标签而不是文本框。因此,我需要一种方法来将USB设备的输入捕获到变量或标签。

有谁知道我可以用来做这个或任何更好的想法的.NET类?

2 个答案:

答案 0 :(得分:4)

如果它是winforms应用程序,你可以做

    private void Form1_Load(object sender, EventArgs e)
    {
        KeyPreview = true;
        KeyPress += Form1_KeyPress;
    }

    private bool inputToLabel = true;
    void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (inputToLabel)
        {
            label1.Text = label1.Text + e.KeyChar;
            e.Handled = true;
        }
        else
        {
            e.Handled = false;
        }
    }

只要窗口具有焦点,按键字符就会转到标签的文本。

答案 1 :(得分:1)

我认为无论如何都不会阻止用户手动输入。我怀疑您已经模拟了键盘的读卡器。因此,为了能够从阅读器中读取,您必须接收键盘输入,键盘输入意味着用户可以键入他们喜欢的任何内容。

一种可能的解决方案是将读卡器更改为使用API​​读取卡的读卡器。

如果不能选择更好的读卡器,我认为最好的方法是使用按钮。单击该按钮时,打开一个包含所提供的代码@Bala R的新表单。但另外,在第一个键输入的1秒内关闭表格。这样可以防止用户手动篡改输入,但会为读者提供足够的时间来完成。