Перехват штрихкода у сканера штрихкодов. #605831


#0 by megabax
Добрый день. Тут передо мно встала такая задача: написать прогу, которая перехватывает событие считвания сканера штрихкода, но при этом не мешает работать штрихкоду с дургими программами. Перехватви, прога доложна проверить, что это за штрихкод и при необходимости выдать пользователю диалоговое окно. Только вот не знаю, с чего начать. Вероятность 99% что писать буду на C#. Подскажите плз, в какую сторону смотреть? WinApi? Или, может, дял C# какие то библиотеки для перехвата событйи от сканера штрихкодов? Если WinApi, То подскажите плз, какая это может быть функция или хотя бы ссыклу где про это можно почитать.
#1 by дущ
Для начала неплохо бы ознакомиться с принципами работы сканеров штрих-кода и узнать какой у тебя будет сканер COM или KB. От этого и подходы будут различаться кардинально. Проще всего, наверное, перехватить KB, обработать и послать уже приложению перехваченную строку.
#2 by lex-kex
"но при этом не мешает работать штрихкоду с дургими программами" только клавиатурный на это способен, хотя я могу ошибаться
#3 by megabax
КВ - это тот что врубается в разрвы клавиатуры что ли? Маловероятно, что он будет. Хотя и под него придется писать. Задача стоит сделать программу универсальную, но большинство скаенров (порядка 99%) будут конечно, COM.
#4 by Derik
COM-порты занимаются приложениями монопольно и обратиться к ним из 2-х приложений не получится. Для решения задачи надо либо переправлять событие в виртуальный ком порт или писать свой драйвер сканера. В комплекте с драйвером сканера Штрих-М были исходники их драйвера, можно попробовать их допилить.
#5 by lex-kex
по моему чтобы отлавливать событие с ком порта его придется занимать,а это мешает работать другим программам со сканером шк
#6 by megabax
хм, спасибо за советы... оказыывается, все гораздо сложнее, чем думал в начале... а если как то прерывания сисемные перхватывать? или это уже программированеи на уровене ассембелра?
#7 by lex-kex
вот тут я точно не советчик
#8 by Torquader
Во-первых,никто не мешает читать COM-порт,а выдавать результаты уже в другой виртуальный порт или в клавиатуру. Ну и наоборот - читать события клавиатуры через LL_KEYBOARD_PROC а выдавать в последовательный порт или другому перехватчику А что нужно сделать - если фильтровать - то это и некоторые сканеры сами умеют
#9 by megabax
8, тоесть, если я вас правильно, вы предлагаете подключать сканер физическому порту, чиатать с него данных а потом передавтать некому эмулятору вирутального порта, а сама программа будет цеплятся уже к виртулаьному порту. Ксати, а могут ли быть проблемы с виртальунам портом, у разных кассовых программ, таких как 1С, атол, фронтол и так далее?
#10 by Torquader
Проблемы могут быть только в кривой реализации виртуального порта, так как на уровне программы системный вызов чтения данных из порта передаётся его драйверу без всяких различий в типе порта.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям