Вы сказали, что вам нужно будет поддерживать любой считыватель штрих-кодов, которые обычно эмулируют клавиатуру, поэтому, вероятно, нет простого способа программно различать вход с клавиатуры и считывателя штрих-кодов.
Ваше представление об использовании времени является хорошим, хотя я бы сделал что-то немного по-другому. Я добавлю Timer
в Form
и запустим его, когда первый символ будет введен в TextBox
. Таймер должен быть установлен на очень короткий промежуток времени и должен автоматически отключиться. Когда таймер погаснет, проверьте, имеет ли TextBox
действительный штрих-код, и если это произойдет, обработайте его. В любом случае, после этого очистите текстовое поле.
Затем появится кто-нибудь, кто попытается использовать клавиатуру, чтобы их напечатанный текст просто исчез, а сканер штрих-кода (который «очень быстро») будет работать.
Быстрый поиск в Google показал, что это должно быть проблемой JAVA. Взгляните на: https://helpx.adobe.com/aem-forms/kb/java-update-compatability-md5.html
и попробуйте изменить / добавить [110 ] в этом файле: %JAVA_HOME%\jre\lib\security\java.security
Для новых приложений я бы рекомендовал создать новый ключ подписи