Работа со сканером штрих кодов
Добавлено: 09 апр 2013, 17:27
Добрый день! Взялся ради интереса за написание небольшой програмульки по учету складского товара. Решил прикрутить в нее сканер штрих кодов. Сам сканер на руках не имею и попробовать с ним поработать не могу, иду методом "слепого сапера".
Есть некое понятие о сканерах, что они подключаются в один из 3-х возможных портов RS-232(COM), USB, PS/2. в случаях с USB возможен виртуальный COM порт. В целом все они могут работать как клавиатура. Т.е. имитировать нажатие клавиш.
Написал маленькую прогу по имитации нажатия клавиш (предполагая что так работает сканер штрих-кода)
Смысл такой - запускаю прогу, ввожу нужный мне код (который должен якобы получить сканер) и за 2-3 секунды задержки успеваю переключится в окно с основной программой где ожидаю этот код. Код получаю в InputBox сообщении и тут вопрос - как быть дальше - пользователь должен нажать ОК или сканер умеет послать код возврата каретки (Enter #13)? И правильной функцией ли я имитирую ввод клавиатуры? Похож ли он с тем принципом, что выдает сканер?
P.S.
А может у кого есть более интересное предложение по решению задачи с получением кода со сканера?
Есть некое понятие о сканерах, что они подключаются в один из 3-х возможных портов RS-232(COM), USB, PS/2. в случаях с USB возможен виртуальный COM порт. В целом все они могут работать как клавиатура. Т.е. имитировать нажатие клавиш.
Написал маленькую прогу по имитации нажатия клавиш (предполагая что так работает сканер штрих-кода)
Код: Выделить всё
procedure TForm1.BTStart1Click(Sender: TObject);
begin
timer1.Interval:=strtoint(Edit2.text)*1000; // в Edit указана задержка таймера
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
ix:integer;
begin
timer1.Enabled:=false;
for ix:=1 to edit1.GetTextLen do // В Edit1 указан цифровой код который должны имитировать
begin
keybd_event(Ord(edit1.text[ix]),0,0,0);
keybd_event(Ord(edit1.text[ix]),0,KEYEVENTF_KEYUP,0);
end;
end;
P.S.
А может у кого есть более интересное предложение по решению задачи с получением кода со сканера?