如何使用Micosoft POS.NET将文本发送到DataLogic Gryphon条形码扫描仪的显示屏上

时间:2016-05-31 09:45:29

标签: c# barcode display

我正在使用c#中的条形码扫描仪应用程序,并使用Microsoft POS 1.14与扫描仪进行通信。条形码扫描工作正常,但现在我们的客户希望使用带显示屏的扫描仪来显示"友好"文本而不是条形码。

我没有找到关于如何做到这一点的任何代码示例,我希望它是可能的。也许可以使用" DirectIO" -command但不幸的是我无法让它工作。

在DataLogic的“产品参考指南”中,您可以找到"转义序列"可能会发送到扫描仪,这可能是解决方案。

我的问题是如何......那里有没有POS专家可以解决我的问题?

祝你好运

1 个答案:

答案 0 :(得分:0)

基于扫描仪(或磁卡读卡器)做了类似的事情,基本上是一个键盘,我可以听,并处理这些按键,因为它们处于某种模式......我没有呃...... ....

按键模式......

;123123?

我编写了以下代码,注意主要表单级别的按键,然后在&#34 ;;"上打开/聚焦相应的表单字段。然后按下所有其他按键直到"?"并将其作为"输入"。

private void EPOSForm_KeyDown(object sender, KeyEventArgs e) {
    //this captures ";" and gives focus to the member ref for input also escape key
    if (e.KeyValue == 186 || e.KeyValue == 27) {
    textBox.Focus();
    }
}

private void textBox_KeyDown(object sender, KeyEventArgs e) {
    //this captures ";" and ignores it
    if (e.KeyValue == 186 || e.KeyValue == 191 || e.KeyValue == 27)
    return;
}

private void textBox_TextChanged(object sender, EventArgs e) {
    if (textBox.Text.IndexOf(";") != -1) {
        //prevents typing of the last char
    textBox.Text = textBox.Text.Replace(";", "");
    textBox.Focus();
    textBox.SelectionStart = textBox.Text.Length;
    }

    if (textBox.Text.IndexOf("?") != -1) {
        //prevents typing of the last char, but assumes it mean "enter"
    textBox.Text = textBox.Text.Replace("?", "");
    textBox.Focus();
    textBox.SelectionStart = textBox.Text.Length;
    //click button
    }
}