Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Вниз

Сканер штрих-кодов   Найти похожие ветки 

 
MU ©   (2006-11-30 17:31) [0]

Добрый день.
Есть сканер штрихкодов, который по радиодоступу посылает считанные штрих коды в разрыв клавиатуры.
Задача состоит в том, чтобы отличить этот поток от обыкновенных параллельных нажатий на этом же компьютере.
что посоветуете? в какую сторону рыть?


 
Array ©   (2006-11-30 17:36) [1]


> MU ©   (30.11.06 17:31) 


да ни в какую... просто обрабатывать эти сообщения тока в том случае если зделан запрос на ввод штрих-кода сканером

или выкавырять клавиатуру...


 
MU ©   (2006-11-30 17:38) [2]

наверняка же есть различия между одним способом ввода и другим - сканкоды, признаки нажати-отпускания клавиш


 
MU ©   (2006-11-30 17:50) [3]

извините господа, меня ввели в заблуждение и я вас запутал.
сканер включается не в разрыв клавиатуры а через USB


 
Array ©   (2006-11-30 17:58) [4]


> сканер включается не в разрыв клавиатуры а через USB


а с ним ПО какоенить ?


 
MU ©   (2006-11-30 18:05) [5]

это пока что теоретический вопрос. конкретной модели еще не знаю. просто хотел узнать, какие пути есть для решения задач. у кого есть опыт?


 
Array ©   (2006-11-30 18:11) [6]


> это пока что теоретический вопрос


ну тогда Вам сюда
http://delphimaster.net/view/2-1164362132/


 
MU ©   (2006-11-30 18:23) [7]

да спасибо, (очень смешно!)
я думаю (надеюсь), что там будет драйвер для вирт. COM-порта и это решит все проблемы.


 
ev   (2006-11-30 19:18) [8]

да, там обязательно должен быть драйвер либо использоваться стандартный
лично я купил USB + блютулз
использую блютулз, через него так же эмулируется обычный ком порт и с ним работаю :)


 
tesseract ©   (2006-12-01 10:03) [9]

Решил проблему следующим образом - если символы вводяться со скоростью больше, чем например символв в 10 мс, то это явно сканер и можно сгенерировать прерывание.


 
Zladey ©   (2007-02-10 10:56) [10]

А нельзя как то отличить этот сканер от клавиатуры... по прерываниям,например?

tesseract ©
А как вы определяете скорость ввода символов?


 
fd979 ©   (2007-02-10 11:15) [11]

Обычно сканеры штрих-кодов выдают сканированное значение в активный control. Им может быть твоя компонента из TЕdit.

У меня есть такой сканер - он так работает. Обрабатываю OnChange и все прекрасно.


 
Zladey ©   (2007-02-10 12:01) [12]

это понятно... задача в том чтобы отличить ввод со сканера от ввода с клавиатуры...


 
fd979 ©   (2007-02-10 15:58) [13]

А тебе, что обязально ввод с клавиатуры нужен? Сделай просто РидОнли и все.


 
Zladey ©   (2007-02-12 09:06) [14]

дело в том, что не на Edit у меня код.. для сом сканера... и на форме тоже... шрих кодом можно команду нажать Add или END на форме.. мне нужно различие... узнать что вводятся симфолы именно со сканера , а не с клавиатуры


 
fd979 ©   (2007-02-12 09:22) [15]

Поставь KeyPreview формы True (design-time)

Затем на OnKeyDown можешь проверять изменился ли текст, если да, то с клавиатуры. А при изменении со сканера OnKeyDown не всплывет.


 
fd979 ©   (2007-02-12 09:23) [16]

Кстати OnKeyDown формы...


 
tesseract ©   (2007-02-12 10:09) [17]


> Затем на OnKeyDown можешь проверять изменился ли текст,
> если да, то с клавиатуры. А при изменении со сканера OnKeyDown
> не всплывет.


Глобальный хук ставить надо, а не onKeyDown формы.   Оператор прифигеет каждый раз фокус на контрол ставить.


 
Zladey ©   (2007-02-12 10:26) [18]

Не могли бы вы обяснить что за " True (design-time) "
а то в объект инспекторе ставлю ... OnKeyDown ловит и сканер..........


 
fd979 ©   (2007-02-12 11:07) [19]


> Глобальный хук ставить надо, а не onKeyDown формы.   Оператор
> прифигеет каждый раз фокус на контрол ставить.

Как раз если поставить KeyPreview не надо будет фокус на контрол ставить.


> Не могли бы вы обяснить что за " True (design-time) "

У формы есть такое свойство KeyPreview. Открываешь Object İnspector  и ставишь это свойство True.
Если OnKeyDown ловит и сканер, тогда:

Сначала сделай так. Пропиши вот это:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 ShowMessage(IntToStr(Key));
end;

Запусти программу. Нажми на сканер. Если правда то, что ты говоришь, тогда сработает FormKeyDown и покажет тебе код клавиши  сканера запомни это число.
Потом меняешь всю эту канитель на:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 If Key = Число которое ты запомнил Then
 begin
   Здесь случай когда сканер сработал
 end
 else
 begin
   Здесь случай когда клава
 end
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.07.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.04 c
15-1182778319
Иксик
2007-06-25 17:31
2007.07.22
Альтернатива HTML Help Workshop


4-1171368306
DVM
2007-02-13 15:05
2007.07.22
CloseHandle вызывает исключения?


8-1162199088
Lebedev
2006-10-30 12:04
2007.07.22
MediaPlayer не приигрывает avi видео-ролик цифрового фотика.


2-1182776458
dest81
2007-06-25 17:00
2007.07.22
Програмно перебрать все компоненты


2-1182512512
Manur
2007-06-22 15:41
2007.07.22
Количество Image





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский