باستخدام XVKBD لقراءة الباركود. كيفية تعطيل مفتاح الدخول؟

StackOverflow https://stackoverflow.com/questions/1844457

سؤال

أنا أستخدم Zbarcam لقراءة الباركود من كاميرا ويب في webapps. ولكن، نظرا لأن Zbarcam عرض n في النهاية، فإن النموذج الخاص بي يقدم.

هنا ما أستخدمه:

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

لوحة المفاتيح

python read_one.py | xvkbd -file -

كيف يمكنني إما إزالة " n" قبل إرسال الباركود إلى XVKBD أو قم بتعطيل مفتاح ENTER في XVKBD؟

هل كانت مفيدة؟

المحلول

جرب هذا:

printf "$(python read_one.py)" | xvkbd -file -

نصائح أخرى

لتجريد الدخول:

print symbol.data.strip()

لكن برنامج قابلية للأنيب يفعل ذلك هو نوع من سيئة. يمكنك فقط إرسالها مباشرة إلى XVKBD من برنامجك (وليس هناك حاجة لملف إذا كنت لا تمانع في اجتياز السلسلة في Args):

import subprocess # at appropriate place
subprocess.call(['xvkbd', '-text', symbol.data.strip()])

هذا يتجنب أيضا شل وبرنامج نصي آخر لتشغيله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top