Как получить строку в событии C# Key(*), которое было вставлено при сканировании? (Windows CE 5)

Я работаю над приложением Win CE 5, которое собирает данные, отсканированные с помощью сканера штрих-кода. Приложение должно поддерживать некоторые "системные штрих-коды", предопределенные штрих-коды, которые запускают функции приложения.

Эти штрих-коды должны работать во всей основной раме. Поэтому я установил для свойства "KeyPreview" основного кадра значение true и зарегистрировал KeyEventHandler в событии KeyDown основного кадра.

Моя проблема в том, что я не мог понять, как получить полную отсканированную строку. Строка длиной 12 символов и заканчивается новой строкой. Есть ли возможность получить всю строку в EventHandler?

Спасибо заранее за любую помощь.

2 ответа

Решение

Большинство, если не все, сканеры штрих-кода на базе Windows CE вводят данные сканирования в виде данных клавиатуры в драйвер устройства. Самый простой способ перехватить эти данные в вашем приложении, где вам не нужно подключать обработчики к каждой форме и беспокоиться о том, как элементы управления получают ключи перед вашей логикой обработки, - это использовать зацепку клавиатуры. Он работает так же, как на рабочем столе, поэтому любой код, который вы обнаружите, который применяется к хукам клавиатуры на рабочем столе, будет действительным (за исключением того, что DLL, содержащая API в WinCE - это coredll.dll).

Есть пример перехвата клавиатуры для Windows Mobile на CodeProject, который, вероятно, даст вам основы для всего, что вам нужно. Оттуда, это просто разбор строк в обработчике хука.

Использование любого из событий Key путем установки свойства Form.KeyPreview должно позволить вам просматривать данные со сканера. Но вы увидите только один "ключ" или символ за раз. Эти события обрабатывают только один символ или клавишу при каждом вызове. Насколько вы могли судить по приложению, оно выглядит не иначе, как пользователь, разбивающий клавиши на клавиатуре.

Если у вас есть такая возможность, и вы можете перевести сканер в режим без клавиатуры и напрямую подключиться к событиям сканирования, вы, вероятно, будете гораздо более удовлетворены результатами с точки зрения того, как он может работать независимо от графического интерфейса пользователя при его использовании. путь. Как правило, с устройствами, которые могут сделать это, вы получите все сканирование как одно событие.

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

Другие вопросы по тегам