【问题标题】:Live Keyboard Input in Python?Python中的实时键盘输入?
【发布时间】:2017-11-20 18:26:18
【问题描述】:

我有一个激光笔,我将它与我的网络摄像头一起用作绘图板,但我也想使用它上面的额外按钮。它们似乎与 Page Up、Page Down、Escape 和 Period 绑定在一起。在不选择任何窗口的情况下,我似乎无法找到一种方法来获取输入(就像键盘一样处理)。

我已经尝试过 serial 和 pyusb,但我都遇到了这两个问题。我让它与 Pygame 一起工作,但据我所知,如果不选择它创建的窗口,您将无法接收输入。有什么想法吗?

【问题讨论】:

  • 尚未对此进行测试,但如果您不介意有一个窗口,您可以尝试使用 SDL2 和一个更新的函数,如 this,它会强制您的窗口获得焦点。但是,该功能仅在 X11 中受支持。您也可以尝试提升窗口以强制窗口焦点。
  • @codesurgeon 我正在使用我必须用 GIMP 绘制的设置,所以我不能让另一个窗口自己聚焦。
  • 您在哪个平台上运行 GIMP?如果它碰巧使用 X11,您可以使用像 python-xlib 这样的低级别的东西来制作键盘记录器来捕获和发送关键事件。
  • @CodeSurgeon Windows 10。
  • @CodeSurgeon pynput 完美运行! :D

标签: python input


【解决方案1】:

您可以尝试制作一个 python 键盘记录器。但是,只使用 Pygame 会容易得多。

【讨论】:

  • 我正在尝试制作一个键盘记录器,所以我从here 获得了 pyHook。当我尝试导入 pyHook 时,我得到 ImportError: DLL load failed: %1 is not a valid Win32 application.
  • 听起来您正在使用 Windows。根据我的经验,如果您使用的是 Windows,获取 Python 的外部包可能会非常痛苦,这就是 Linux 可能会使事情变得更容易的原因。找到这个:stackoverflow.com/questions/14629818/…
【解决方案2】:

CodeSurgeon 在评论中回答了我。

看起来有很多关于这个主题的 youtube 教程,令人惊讶。这个展示了一种使用pynput 模块的跨平台方法,而这个看起来使用了一种特定于Windows 的方法(pyhookpythoncom)。不能保证其中任何一个,因为我只是通过一些搜索找到了它们,我相信还有其他的。

我发现pynput 对我有用。 (Windows 10/Python 3.4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2021-08-13
    • 2012-11-23
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多