![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Danat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 30.3.2005 Репутация: нет Всего: нет |
Когда CardReader подключен к компу то он ведет себя так как будто это еще одна клавитаура и проведение карточки по нему вызывало появление соответствующих символов в Notepad или где-нибудь еще.
Необходимо перехватывать то что идет от ридера и не пускать это на клавиатурный ввод, так чтобы моя программа не будучи активной получала информацию о считанной карточке. Раньше проблема казалось была решена за счет хуков, но потом обаружилось что при смене языка (раскладки клавиатуры) считанный код тоже интерпретируется в соответствии с этой раскладкой и к примеру формат "%код?" становится "%код," если вместо Англ стоит Русский. Поясню как читается код с карточки: - таймоут на ожидание следующего символа около 50 мсек иначе все поступающие символы идут прямиком на клавиатурный вывод. При проведении карточкой где-то за пол-секунды появляются 7-8 символов и таким образом можно определить что человек не мог так быстро это набрать, т.е это символы с ридера. - идет сканирование буфера в который засовываются считанные символы на соответствие формату "%код?". Если очередной поступивший сивол не соответствует формату , он отправляется на вывод. Был вариант ставить на программе Англ. язык и тогда вроде это не должно мешать включать Русский в других приложениях, но вот в чем загвоздка - символ считывается на Англ. языке моей программой и потом если он "не подходит" , он посылается на вывод опять же в английском варианте и в итоге приложение с включенным Русским шрифтом будет получать все равно Англ. буквы. Поэтому мне бы хотелось узнать если символы идут именно от кард ридера, то никуда их больше не посылать. Или вообще как-то настроить ридер чтобы он только мне посылал считанный код и не выдавал это за обычные нажатия клавиш на клаве. Пока ничего в голову не приходит ![]() |
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
А почему не использовать только цифры? Как вариант, можно обрабатывать пары для RU/EN. А через какой интерфейс подключен CardReader?
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Danat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 30.3.2005 Репутация: нет Всего: нет |
формат "%код?" стандартный и определяется не мной
![]() ![]() ![]() Насчет интерфейса Ридер суется в USB и после этого в системе определяется 2 новых устр-ва: - USB Human Interface Device - HID Keyboard Device Там в настройках драйвера есть всякие deviceID и пр. но я не знаю если это в итоге позволит мне определять кто посылает код. Т.е. лучше бы кто-то кто работал с HID сказал "да это возможно" и тогда бы я уже стал бы копаться. Это сообщение отредактировал(а) Danat - 2.5.2006, 16:29 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |