Для клавиатурных сканеров есть рабочее решение
https://github.com/FragsterAt/barcode_hid_reader
Отлавливает сканирование НЕ в поле ввода (специально, пусть пользователь вводит руками что нужно, если нужно изменить - то можно по энтеру или блюру анализировать содержимое), в обработчике события сканирования можно со штрихкодом делать что нужно (а можно вообще тупо свой коллбэк передать при инициализации, тогда события не будет, а будет просто вызываться функция).
Проверка тут
https://fragsterat.github.io/barcode_hid_reader/te...
По поводу зоопарка сканеров - клавиатурные работают +- одинаково, единственное - при доступе по RDP на медленном канале или совсем старом железе нужно немного увеличить таймаут.