我的代码在事件中从print语句打印出我需要的内容。但是,由于类的实例化方式,我不知道如何返回数据。此外,print语句仅在以下情况下有效pythoncom.PumpWaitingMessages公司包含(),但它不返回打印的数据或任何内容。在
我希望能够使用打印出来的作为返回值,供其他函数访问。在
(如果情况变得更糟,我可以捕获stdout(这是最后的手段)
代码:
# Standard Lib
import time
# Third Party
from win32com.client import DispatchWithEvents
import pythoncom
# Local Lib
import scan_var
class Events(object):
def OnBarcodeEvent(self, eventType=pythoncom.Empty, pscanData=pythoncom.Empty):
print pscanData
return pscanData
zebra = DispatchWithEvents("CoreScanner.CoreScanner", Events)
# open api
open_status = zebra.Open(0, [1], 1)
print "Open status: {}".format(open_status)
# get scanners
get_scanners = zebra.GetScanners(0, [1])
print "get_scanners: {}".format(get_scanners)
# Register for events
register = zebra.ExecCommand(1001,scan_var.register_for_events)
print "register: {}".format(register)
# PEWPEWPEW (pull trigger)
fire_result = zebra.ExecCommand(2011, scan_var.pull_trigger)
print "PEWPEWPEW {}".format(fire_result)
time.sleep(5)
while True:
time.sleep(1)
pythoncom.PumpWaitingMessages()
输出:
^{pr2}$
我的解决办法如下。这可能是丑陋和错误的,但它得到了我所需要的。如果有人有更好的方法,我很乐意编辑。在
相关问题 更多 >
编程相关推荐