|
Перехват штрихкода у сканера штрихкодов. | ☑ | ||
---|---|---|---|---|
0
megabax
12.04.12
✎
22:42
|
Добрый день. Тут передо мно встала такая задача: написать прогу, которая перехватывает событие считвания сканера штрихкода, но при этом не мешает работать штрихкоду с дургими программами. Перехватви, прога доложна проверить, что это за штрихкод и при необходимости выдать пользователю диалоговое окно.
Только вот не знаю, с чего начать. Вероятность 99% что писать буду на C#. Подскажите плз, в какую сторону смотреть? WinApi? Или, может, дял C# какие то библиотеки для перехвата событйи от сканера штрихкодов? Если WinApi, То подскажите плз, какая это может быть функция или хотя бы ссыклу где про это можно почитать. |
|||
1
дущ
12.04.12
✎
23:08
|
Для начала неплохо бы ознакомиться с принципами работы сканеров штрих-кода и узнать какой у тебя будет сканер COM или KB. От этого и подходы будут различаться кардинально.
Проще всего, наверное, перехватить KB, обработать и послать уже приложению перехваченную строку. |
|||
2
lex-kex
12.04.12
✎
23:18
|
(0) "но при этом не мешает работать штрихкоду с дургими программами"
только клавиатурный на это способен, хотя я могу ошибаться |
|||
3
megabax
12.04.12
✎
23:18
|
КВ - это тот что врубается в разрвы клавиатуры что ли? Маловероятно, что он будет. Хотя и под него придется писать. Задача стоит сделать программу универсальную, но большинство скаенров (порядка 99%) будут конечно, COM.
|
|||
4
Derik
12.04.12
✎
23:34
|
COM-порты занимаются приложениями монопольно и обратиться к ним из 2-х приложений не получится. Для решения задачи надо либо переправлять событие в виртуальный ком порт или писать свой драйвер сканера. В комплекте с драйвером сканера Штрих-М были исходники их драйвера, можно попробовать их допилить.
|
|||
5
lex-kex
12.04.12
✎
23:35
|
(3) по моему чтобы отлавливать событие с ком порта его придется занимать,а это мешает работать другим программам со сканером шк
|
|||
6
megabax
13.04.12
✎
00:09
|
хм, спасибо за советы... оказыывается, все гораздо сложнее, чем думал в начале...
а если как то прерывания сисемные перхватывать? или это уже программированеи на уровене ассембелра? |
|||
7
lex-kex
13.04.12
✎
00:11
|
(6) вот тут я точно не советчик
|
|||
8
Torquader
13.04.12
✎
00:13
|
Во-первых,никто не мешает читать COM-порт,а выдавать результаты уже в другой виртуальный порт или в клавиатуру.
Ну и наоборот - читать события клавиатуры через LL_KEYBOARD_PROC а выдавать в последовательный порт или другому перехватчику А что нужно сделать - если фильтровать - то это и некоторые сканеры сами умеют |
|||
9
megabax
13.04.12
✎
10:49
|
8, тоесть, если я вас правильно, вы предлагаете подключать сканер физическому порту, чиатать с него данных а потом передавтать некому эмулятору вирутального порта, а сама программа будет цеплятся уже к виртулаьному порту. Ксати, а могут ли быть проблемы с виртальунам портом, у разных кассовых программ, таких как 1С, атол, фронтол и так далее?
|
|||
10
Torquader
13.04.12
✎
16:10
|
(9) Проблемы могут быть только в кривой реализации виртуального порта, так как на уровне программы системный вызов чтения данных из порта передаётся его драйверу без всяких различий в типе порта.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |