Проблема в том, что HID «устройства» отправляют информацию обратно на компьютер в пакетах, известных как «отчеты» .
В случае магнитного сканирования или сканера штрих-кода «отчет» содержит целое число.
То есть вы получаете отчеты не по буквам, а сразу всю строку. (В случае магнитного удара вы получите все два или три трека в одном отчете).
Таким образом, ваш код не разбивает «по первому символу» , он разбивает «по всему отчету» . Тот факт, что остальные персонажи присутствуют там, вы можете рассматривать как бонус (если вы не хотите на них смотреть, вам не обязательно). Но вы больше не будете получать «отчеты» для последующих символов.
Я не могу представить себе причину, по которой вы не захотите хотеть узнать штрих-код сразу. Но большинство магнитных сканеров и сканеров штрих-кода могут быть настроены на эмуляцию клавиатуры , а не обычного устройства HID. В этом случае вы получите несколько WM_KEYDOWN
сообщений.