| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Подконтрольное событие нажатия клавиш |
| Автор: PZh 10.4.2012, 11:46 |
| Есть потребность буферизовать все нажатия клавиш, а затем выплевывать их, если надо, а если не надо - игнорировать. Где та входная точка приложения? Свойство Handled в событии формы KeyDown не помогает. |
| Автор: PZh 27.4.2012, 20:20 |
| Вопрос как бы актуален. Может я непонятно изъясняюсь? Нужно чтобы все нажатия клавиш проходили проверку где нибудь в одном месте и далее, если все хорошо - приложение реагировало бы как обычно (печатаемые символы появлялись в TextBox'ах, по табу перескакивал бы фокус, по пробелу срабатывали бы фокусные Button'ы и прочие радости). А вот если все плохо, то этих нажатий как будто бы и не было. Объясню необходимость. Устройство на котором работает ПО считывает штрихкоды и делает она это тупо - как будто это быстрое нажатие последовательности цифр плюс какие-то "закрывающие" символы. Решаю так - буферезирую все нажатия через KeyDown формы и затем, если они не уложились в некоторый параметр "чувствительности" сканера - то обрабатываю как простые нажатия, а если уложились - то это штрихкод. И все, вообщем-то, работает, только вот TextBox'ы при такой схеме не убережешь и приходится организовывать чудовищно извратной комплекс мероприятий который приводит их в тот вид, в котором они находились до сканирования ШК. И это далеко не единственная проблема... Так вот, если бы кто нибудь подсказал решение. Как я вижу решение - описал в вопросе. |
| Автор: Экскалупатор 27.4.2012, 21:09 |
| устройство скорее всего имеет какой то интерфейс, который возвращает поток входных данных, сам сканер он же не нажмает кнопки, это устройство его так обрабатывает, может быть лучше читать поток используя какой то драйвер и порт устройства? на мой взгляд это было бы логичнее чем танцы с событиями формы |
| Автор: PZh 27.4.2012, 21:15 |
| Наверное да, только вот есть примеры аналогичной организации сканера на ПК от фирмы "АТОЛ", уж если они не сделали по человечески, то как это сделаю я? С событиями формы мне кажется проще. Найти какой-то неведомый драйвер на машинку определенной модели, драйвер под определенную ось и чтобы он еще как-то (по API наверное) цеплялся к приложению на NET... Видится мне куда более сложным... |
| Автор: Экскалупатор 27.4.2012, 22:05 |
| ну если устройство работают и данные приходят значит что драйвер уже есть и используется, осталось только выяснить API и использовать его, уверен что там будет все что нужно, даже проще будет читать данные оттуда чем мутить какие то сложные конструкции. |