xvkbd を使用してバーコードを読み取ります。Enterキーを無効にするにはどうすればよいですか?
-
12-09-2019 - |
質問
WebアプリでWebカメラからバーコードを読み取るためにzbarcamを使用しています。ただし、zbarcam は最後に を表示するため、フォームは送信されます。
私が使用するものは次のとおりです。
read_one.py
#!/usr/bin/python
from sys import argv
import zbar
import webbrowser
# create a Processor
proc = zbar.Processor()
# configure the Processor
proc.parse_config('enable')
# initialize the Processor
device = '/dev/video0'
if len(argv) > 1:
device = argv[1]
proc.init(device)
# enable the preview window
proc.visible = True
# read at least one barcode (or until window closed)
proc.process_one()
# hide the preview window
proc.visible = False
# extract results
for symbol in proc.results:
# do something useful with results
print symbol.data
キーボード.sh
python read_one.py | xvkbd -file -
バーコードを xvkbd に送信する前に「 」を削除するか、xvkbd で Enter キーを無効にするにはどうすればよいですか?
解決
これを試して:
printf "$(python read_one.py)" | xvkbd -file -
他のヒント
Enter を削除するには:
print symbol.data.strip()
しかし、それを行うパイプ可能なプログラムはちょっと厄介です。プログラムから xvkbd に直接送信することもできます (引数に文字列を渡してもよい場合は、ファイルは必要ありません)。
import subprocess # at appropriate place
subprocess.call(['xvkbd', '-text', symbol.data.strip()])
これにより、別のシェルやスクリプトの実行も回避されます。
所属していません StackOverflow