![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
PZh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.5.2010 Репутация: нет Всего: нет |
Есть потребность буферизовать все нажатия клавиш, а затем выплевывать их, если надо, а если не надо - игнорировать.
Где та входная точка приложения? Свойство Handled в событии формы KeyDown не помогает. Это сообщение отредактировал(а) PZh - 10.4.2012, 13:06 |
|||
|
||||
PZh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.5.2010 Репутация: нет Всего: нет |
Вопрос как бы актуален. Может я непонятно изъясняюсь?
Нужно чтобы все нажатия клавиш проходили проверку где нибудь в одном месте и далее, если все хорошо - приложение реагировало бы как обычно (печатаемые символы появлялись в TextBox'ах, по табу перескакивал бы фокус, по пробелу срабатывали бы фокусные Button'ы и прочие радости). А вот если все плохо, то этих нажатий как будто бы и не было. Объясню необходимость. Устройство на котором работает ПО считывает штрихкоды и делает она это тупо - как будто это быстрое нажатие последовательности цифр плюс какие-то "закрывающие" символы. Решаю так - буферезирую все нажатия через KeyDown формы и затем, если они не уложились в некоторый параметр "чувствительности" сканера - то обрабатываю как простые нажатия, а если уложились - то это штрихкод. И все, вообщем-то, работает, только вот TextBox'ы при такой схеме не убережешь и приходится организовывать чудовищно извратной комплекс мероприятий который приводит их в тот вид, в котором они находились до сканирования ШК. И это далеко не единственная проблема... Так вот, если бы кто нибудь подсказал решение. Как я вижу решение - описал в вопросе. |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
устройство скорее всего имеет какой то интерфейс, который возвращает поток входных данных, сам сканер он же не нажмает кнопки, это устройство его так обрабатывает, может быть лучше читать поток используя какой то драйвер и порт устройства? на мой взгляд это было бы логичнее чем танцы с событиями формы
|
|||
|
||||
PZh |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.5.2010 Репутация: нет Всего: нет |
Наверное да, только вот есть примеры аналогичной организации сканера на ПК от фирмы "АТОЛ", уж если они не сделали по человечески, то как это сделаю я?
С событиями формы мне кажется проще. Найти какой-то неведомый драйвер на машинку определенной модели, драйвер под определенную ось и чтобы он еще как-то (по API наверное) цеплялся к приложению на NET... Видится мне куда более сложным... |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
ну если устройство работают и данные приходят значит что драйвер уже есть и используется, осталось только выяснить API и использовать его, уверен что там будет все что нужно, даже проще будет читать данные оттуда чем мутить какие то сложные конструкции.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |