条形码扫描仪与Python
我有一个条形码扫描器(Keyence BL-N70UBE),它的工作方式就像键盘输入一样。我想写一个Python脚本,让它在后台运行,只有当条形码扫描器读取到内容时,它才会启动一个进程来控制Windows应用程序(比如用PyWinAuto之类的工具)。
我遇到的问题是,Python似乎需要控制台窗口打开,才能接受输入。还有一个问题是,它无法区分条形码扫描器和键盘输入。有没有更好的方法来实现这个功能呢?
input_data0 = raw_input('waiting for keyboard input ...\n')
input_data1 = raw_input('waiting for keyboard input ...\n')
input_data2 = raw_input('waiting for keyboard input ...\n')
input_data3 = raw_input('waiting for keyboard input ...\n')
input_data4 = raw_input('waiting for keyboard input ...\n')
print input_data0
print input_data1
print input_data2
print input_data3
print input_data4
1 个回答
1
你想要在输入的更早阶段,也就是单个按键的层面上捕捉输入。
注意开始字符(大多数条形码扫描器可以设置这个,通常对于二维条形码是开启的,而对于三维条形码则常常是关闭的)。
保持一个计时器,如果一个字符不是条形码序列的开始字符,或者自上一个字符以来超过了设定的时间,就认为它不是条形码的一部分,让它通过。
可以查看一下 https://github.com/marcinlawnik/pykeylogger-fork,了解如何在输入到系统之前拦截键盘输入。