Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
S> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
А нах? Они же просто вводят цифры типо как с клавиатуры...
это делитанский подход!
Если есть такой функционал , то почему им не пользоваться!
В том варианте что вы говорите у вас если на форме будет несколько ЕДИТОВ или гридов, то будет вставлять туда где будет фокус! А надо что б определяло что пришло именно со сканера , а не с клавыи вставляло туда куда надо, я ж описал в основном посте что б не флудили.
S>> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
KAR>А нах? Они же просто вводят цифры типо как с клавиатуры...
Re[3]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, slavanb, Вы писали:
S>это делитанский подход! S>Если есть такой функционал , то почему им не пользоваться! S>В том варианте что вы говорите у вас если на форме будет несколько ЕДИТОВ или гридов, то будет вставлять туда где будет фокус! А надо что б определяло что пришло именно со сканера , а не с клавыи вставляло туда куда надо, я ж описал в основном посте что б не флудили.
То, что так никто не делает, а все берут штрихкод с клавы, тебе ни на что не намекает? Подсказываю: если штрихкод плохо читается, оператор должен тут же вбить его цифрами. Поэтому от ЕДИТА и ФОКУСА тебе не уйти.
Но если времени много и оно оплачивается, копай на здоровье.
Еще подсказка. Определив HID устройство, Windows будет считать его второй клавой, брать с него поток символов и слать в активное окно. И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер, который будет фильтровать потоки. Почитай тут.
Re[4]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, wildwind, Вы писали:
W>И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер
Возможно, я был неправ. Есть еще Raw input API.
Re[5]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От:
Аноним
Дата:
02.05.14 14:43
Оценка:
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, wildwind, Вы писали:
W>>И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер W>Возможно, я был неправ. Есть еще Raw input API.
Оно только с 7ки нормальное, и клаву от сканера он задолбеццо отличать. 2 мышки — проще.
Просто есть сканеры которые прямо в клавах (с клавами), так что чел тупо фигней занимеццо...
Re[5]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, wildwind, Вы писали:
W>>И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер W>Возможно, я был неправ. Есть еще Raw input API.
вот-вот я про то же , я находил похожие вещи для мышей и джойстиков, но там был страшный гавнокод, поэтому разобраться как все это переделать под сканер не получилосю.
Ваше ссылка ближе к теме , но надо чтоб это было для ДЕЛФИ, а там Си.
Больше конечно интересует мнение тех кто реально работал с проблемой.
В режиме фокуссов и ввода с клавиатуры программа уже работает! Но это не то, надо именно что б сканер определялся однозначно! Могу сделать через эмуляцию СОМ-порта, но не хотелось бы, СОМ все же вчерашний день.
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, slavanb, Вы писали:
S> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
Когда мне нужно было сделать своё HID устройство принцип работы с ним через WinAPI был такой:
1. Получить идентификатор HID устройства. Также можно прочитать параметры устройства из дескриптора USB устройства.
2. Вызывать CreateFile с идентификатором из п.1
3. Вызвать ReadFile чтобы прочитать из него байты. И WriteFile чтобы передать байты туда.
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, slavanb, Вы писали:
S> надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
это невозможно, клавиатура тоже можеть быть usb hid устройством.
Re[2]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, mike_rs,
_>это невозможно, клавиатура тоже можеть быть usb hid устройством.
И даже еще хитрее. Сканер может включаться в POS-клавиатуру, а сама POS-клавиатура отдает данные как с кнопок, так и со сканера — в комп, не делая различий, пришли ли они со сканера или были нажаты кнопки на клавиатуре.
Re[6]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, slavanb, Вы писали: S>Больше конечно интересует мнение тех кто реально работал с проблемой.
Когда я разгребался с проблемой, я не придумал ничего лучше чем сделать так:
1. Выставляем на сканере стартовый и стоповый символы.
2. Хучим очередь с клавиатуры.
3. Если ловим стартовый символ, начинаем все читать себе в буфер. Если превысили таймаут между символами (символов больше чем нужно, есть недопустимые символы), отдаем все дальше винде. Если словили стоповый символ, считаем перехваченное штрихкодом и забираем его из виндовой очереди.
Таймауты подбирались методом научного тыка — на работу влияние незаметно (приложение висит в трее и ловит вообще все сообщения, вне зависимости от активного приложения). Стартовый символ редко используемый, я ставил '&'.
Всё, что нас не убивает, ещё горько об этом пожалеет.
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, slavanb, Вы писали:
S> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
Как уже говорил Ромашка, некоторые POS системы работают исключительно по таймаутам (предполагается, что пользователь так быстро не набирает, а по факту, обычная клавиатура зачастую отсутствует вовсе): т. к. устройство может быть вовсе не HID, а встраиваемое в разрыв клавиатуры PS/2 (как говорил Vlad_SP). Поэтому клавиатурный хук и таймауты — наиболее универсальный вариант, при использовании считывателей, ведущих себя как клавиатура.
Re[3]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, Vlad_SP, Вы писали:
V_S>Здравствуйте, mike_rs,
_>>это невозможно, клавиатура тоже можеть быть usb hid устройством.
V_S>И даже еще хитрее. Сканер может включаться в POS-клавиатуру, а сама POS-клавиатура отдает данные как с кнопок, так и со сканера — в комп, не делая различий, пришли ли они со сканера или были нажаты кнопки на клавиатуре.
Особенности
• основанный на HID, не требуетя драйвер
• Намного быстрее чем эмуляция клавиатуры и традиционный RS-232
• Symbology идентификаторы (изделия AIM и Hand Held Products) всегда содержатся во входном сообщении, которое использует USB имена направления: ввод (на PC) и вывод (на устройство)
Re[7]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
Здравствуйте, Ромашка, Вы писали:
Р>Здравствуйте, slavanb, Вы писали: S>>Больше конечно интересует мнение тех кто реально работал с проблемой.
Р>Когда я разгребался с проблемой, я не придумал ничего лучше чем сделать так:
Р>1. Выставляем на сканере стартовый и стоповый символы. Р>2. Хучим очередь с клавиатуры. Р>3. Если ловим стартовый символ, начинаем все читать себе в буфер. Если превысили таймаут между символами (символов больше чем нужно, есть недопустимые символы), отдаем все дальше винде. Если словили стоповый символ, считаем перехваченное штрихкодом и забираем его из виндовой очереди.
Р>Таймауты подбирались методом научного тыка — на работу влияние незаметно (приложение висит в трее и ловит вообще все сообщения, вне зависимости от активного приложения). Стартовый символ редко используемый, я ставил '&'.
Так же делал, единственное, что стартовый и стоповый символ подбирал такой, чтобы с клавиатуры просто так нельзя было ввести.
Ну и недостаток, что приходилось на сканере выставлять эти символы, что не очень удобно вообще то.
Еще обнаружил, что MS Officсe безбожно чего-то там хучит себе наздоровье )