Главная страница
    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.047 c
6-1166525153
Googler2007
2006-12-19 13:45
2007.07.22
Помогите узнать, куда ведет Flash Banner (iHTMLObjectElement)


15-1181763740
Yanis
2007-06-13 23:42
2007.07.22
На чём всё?


3-1176802220
bss
2007-04-17 13:30
2007.07.22
Проблема с Lookup-полем


2-1183224027
Lavrenty
2007-06-30 21:20
2007.07.22
Корректность кода


2-1182882228
Chaval'
2007-06-26 22:23
2007.07.22
ListView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский