4

几天来我一直在为一个问题苦苦挣扎,但我无法让它工作。我刚刚开始使用 python,现在我已经面临我将在这个项目中面临的最大问题。

情况如下:我必须制作一个扫描条形码的程序。将此信息传达给在线服务并打印 PDF。这一切都很好,但我也想在窗口“失焦”时扫描条形码。所以我想让人们在最小化窗口的同时使用条形码扫描仪进行扫描。

我正在运行 Windows 8,并且正在使用 python 3.3。条形码扫描仪是一种 HID 设备,它以键盘的形式出现。我已经尝试将此项目转换为 python 3.3,但它不起作用。--> http://learn.adafruit.com/barcode-scanner/overview我最终遇到了各种各样的错误,我仍然不完全理解。

今天我尝试使用 pywinusb,但是这个模块似乎在查找任何 HID 设备方面存在问题,因为它也找不到我的键盘和鼠标。

也许这是一个复杂的问题,但希望有人对此有经验并知道如何使其发挥作用。

4

1 回答 1

1

如果条形码扫描仪将自己呈现为键盘,那么您想要的基本上不是在后台运行的按键记录器吗?搜索它,是“python keylogger”的第一个谷歌搜索结果之一——根据消息来源,它需要pyWin32pyHook。我删除了日志记录以将代码示例减少到最低限度,只需将处理代码放入OnKeyboardEvent. 我对此进行了测试,它适用于我在 Windows 7 上安装的 Python 2.7,但这些模块应该与 Python 3.3 兼容。

import pythoncom, pyHook, sys, logging

def OnKeyboardEvent(event):
    print "Key: ", chr(event.Ascii)
    logging.log(10,chr(event.Ascii))
    return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
于 2013-02-07T11:54:36.170 回答