2016-01-25 2 views
0

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

В моей основной форме у меня есть несколько текстовых полей. Одним из них является Barcode TextBox, где пользователь может писать штрих-код вручную или может читать считыватель штрих-кода.

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

Итак, есть ли способ сделать это возможным?

+0

Проверьте это: [Как отличить несколько устройств ввода в C#] (http://stackoverflow.com/questions/587840/how-to-distinguish-between-multiple-input-devices-in-c-sharp) – Fabio

+0

Я не помню 100%, но я не думаю, что считыватель штрих-кода вызывает события KeyDown и KeyUp, только событие TextChanged, поэтому вы можете что-то с этим сделать. Попробуйте проверить это. – LarsTech

+0

Проверьте, не читает ли ваш считыватель штрих-кода его ввод любыми специальными символами. Например, текст, созданный считывателем штрих-кода, может быть * 123456789 #, где * и # добавляются считывателем штрих-кода к отсканированным данным. Обычно это конфигурируется в конфигурации считывателей. Вы можете использовать это, чтобы определить, поступают ли данные от читателя или нет. –

ответ

0

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

Многие читатели могут быть переведены в несколько разных режимов. Если я хочу немного большей гибкости, чем эмулированный режим клавиатуры, я иду за RS232 (последовательный). Сканеры Datalogic и Honeywell, которые я использовал, поддерживают RS232, но я уверен, что большинство сканеров.

Просто используйте объект System.IO.Ports.SerialPort для сбора данных, отправленных с сканера на компьютер.

+0

Извините, я нашел эту библиотеку: http: // www .microsoft.com/EN-US/скачать/details.aspx? ID = 42081. вы знаете, может ли это помочь мне получить полный контроль над считывателем штрих-кодов и решить мою проблему? –

+0

Я понятия не имею, но для решения вашей проблемы это похоже на полный перебор и, скорее всего, вызовет у вас больше проблем. Если вы пользуетесь считывателем штрих-кодов с эмуляцией последовательного порта, для выполнения нужных действий требуется всего несколько строк кода. – LinusN

+0

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

0

Я всегда использовал событие TextChanged и проверяю, чтобы увидеть количество символов, добавленных с момента последнего изменения текста. Если вы печатаете, это всегда будет 1. Если вы сканирование, это будет больше. Одна проблема заключается в том, что вставка будет отображаться как сканирование, но по моему опыту это тоже то, что я хочу.

+0

К сожалению, я нашел эту библиотеку: http://www.microsoft.com/en-us/download/details.aspx?id=42081. вы знаете, может ли это помочь мне получить полный контроль над считывателем штрих-кодов и решить мою проблему? –

+0

Нет, я ничего об этом не знаю. – Steve

0

Следующие три условия, которые различают сканер штрих-кода от клавиатуры ввода данных.

  1. данных со сканера штрих-кода заканчивается в течение 0,3 секунд
  2. данных сканер штрих-кода заканчивается с символа «ввод».
  3. Длина строки штрих-кода составляет в основном около 10 символов.

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