получить значение считывателя штрих-кода из фонового мониторинга

Я хочу создать бухгалтерскую программу на языке C #. Я хочу использовать сканер штрих-кода для поиска товаров в магазине (это необязательно для моей программы) Теперь в основной форме, если продавец использует считыватель штрих-кода, получить значение штрих-кода для метода или события дескриптора; Как я могу получить значение штрих-кода в фоновом режиме формы (без текстового поля) для метода дескриптора или события?

Примечание: мой считыватель штрих-кода является HID (интерфейс USB)

Ответы на вопрос(1)

Решение Вопроса

Устройство со штрих-кодом ведет себя как клавиатура. Когда у вас есть фокус в текстовом поле, он отправляет символы в текстовое поле, как если бы вы печатали их с клавиатуры.

Если вы не хотите использовать текстовое поле, вам необходимо подписаться на обработчик событий клавиатуры для захвата потока штрих-кода.

Form1.InitializeComponent ():

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

Обработчик & amp; вспомогательные предметы:

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

Вы должны будете отслеживать нажатия клавиш "quot; нажатия клавиш"; и обратите внимание на «возврат каретки» который отправляется с потоком штрих-кода. Это легко сделать в массиве. Чтобы различать нажатия клавиш пользователя и нажатия клавиш со штрих-кодом, можно сделать один грязный трюк - отслеживать время нажатия клавиш.

Например, если вы получаете поток нажатий клавиш с интервалом менее 100 мс, заканчивающийся возвратом каретки, вы можете предположить, что это штрих-код, и обрабатывать его соответствующим образом.

Кроме того, если ваш сканер штрих-кода является программируемым, вы также можете отправлять специальные символы или последовательности.

Ваш ответ на вопрос