0
- 12.04.2012 - 21:22
|
Добрый день. Тут передо мно встала такая задача: написать прогу, которая перехватывает событие считвания сканера штрихкода, но при этом не мешает работать штрихкоду с дургими программами. Перехватви, прога доложна проверить, что это за штрихкод и при необходимости выдать пользователю диалоговое окно. Только вот не знаю, с чего начать. Вероятность 99% что писать буду на C#. Подскажите плз, в какую сторону смотреть? WinApi? Или, может, дял C# какие то библиотеки для перехвата событйи от сканера штрихкодов? Если WinApi, То подскажите плз, какая это может быть функция или хотя бы ссыклу где про это можно почитать. | |
1
- 13.04.2012 - 00:28
| в сторону 1С-а смотри... | |
2
- 13.04.2012 - 01:39
|
т.е. есть некий софт работающий со сканером штрихкодов и нужно перехватить его обмен со сканером для реализации специфических функций, которых не хватает в штатном софте. Причем перехватчик не должен мешать другому софту. Если протокол известен, то нужно разобраться по какому интерфейсу идет обмен со сканером и далее копать уже в эту сторону. Если по RS232 через реальный или виртуальный com порт, то это одна песня, если через что то другое то другая. Вариантов много от аппаратных, типа спец кабеля, до программных типа перехвата вызова api функций или использования различного софта для создания виртуальных портов (ну это чтобы прослушивать обмен). | |
3
- 13.04.2012 - 08:13
|
1, а почему 1С? Вообще, как раз с веротностью 90% там будет стоять 1С, которой то и моя программа не долна мешать. Спросите, что мешает сделать функционал моей программы в самой 1С? А дело в том, что закрытая будет 1С. Мне туда не разрешат вносить изменения. Вообще, задача такая: есть куча торговых точек, в каждой из них стоит самая разнообразная кассовая программа: 1С 8, 1С 7.7, при чем сама 1С у всех разная, у кого то она вообще закрыта от изменений. Но может стоять и Атол или фронтол или еще что нибудь. А задача в том, что бы на всех точках сделать прибулду, которая при считывании определенных штрихкодов ломится в центральную базу и передает туда данны, а так же получает необходимые данные оттуда. Проблема в том, что все кассовые программы разные и заставить точки прейти на одну невозможно. | |
4
- 13.04.2012 - 08:14
| ЗЫ. Вообще, возникает вопрос, для разных сканеров мне рпидется по разному извратиться, что бы перхватить это собтытие? | |
5
- 13.04.2012 - 12:05
|
Сканеры всякие-разные, кто клавиатурой прикидывается и прямо нажатия клавиш имитирует, кто по RS232, кто по USB-Serial. Если нужна универсальность, то возможно будет проще не сканер слушать, а поле ввода куда данные от него попадут в итоге. Под разный кассовый софт подстраивать придётся - в каком окне какой элемент отслеживать, но различия всяко меньше чем между клавиатурой и rs232. | |
6
- 13.04.2012 - 13:45
|
Да задачка не однозначная так как разный софт и разные сканеры. В принципе можно сделать как предложил flowswitch, пожалуй это действительно будет значительно проще, т.к. тогда не придется разбираться с разными сканерами и их протоколами и режимами. Единственное нужно будет выдрать данные из софта. Правда тогда будет завязка на используемый софт. Для разработки и отладки потребуется все версии софта, что используются на объектах. Другой же вариант городить перехватчик, для эмуляторов клавиатуры это постановка соответствующего хука, а для тех что работают через com порт можно использовать что то типа hub4com http://com0com.sourceforge.net/ что бы не заморачиваться с низкоуровневым перехватом. При этом еще придется разобраться с протоколами и режимами работы сканеров и особенностями работы разных версий прошивок для них. Это в принципе может быть оправдано, если типов используемых сканеров немного, например, не более 3-5. Для отладки потребуются соответственно все типы используемых сканеров желательно с рабочими используемыми настройками. | |
| Интернет-форум Краснодарского края и Краснодара |