【问题标题】:Keyboard Listener for Mac using Python使用 Python 的 Mac 键盘监听器
【发布时间】:2018-02-16 21:37:49
【问题描述】:

我已经尝试了键盘监听器的所有代码。我遇到过一篇帖子,上面说 Mac 会阻止系统听键盘按键。我正在使用python。我也使用 pynput 作为库。我怎样才能让 Mac 听我的按键?它只听“Shift”、“Alt”和“Command”等特殊键。

【问题讨论】:

标签: python macos keyboard


【解决方案1】:

这不是 pynput 中的错误,而是 os x 的安全特性。您必须以 root 身份运行 Python 才能绕过它。

sudo python3 app.py

如果您不想继续使用 sudo,永久解决方法是进入安全和隐私首选项并将 Python 添加到可访问性选项卡。

【解决方案2】:

来自文档:

像这样使用 pynput.keyboard.Listener:

from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

键盘监听器是一个threading.Thread,所有的回调都将是 从线程调用。

从任何地方调用 pynput.keyboard.Listener.stop,引发 StopException 或从回调中返回 False 以停止侦听器。

传递给回调的 key 参数是一个 pynput.keyboard.Key,用于 特殊键,普通字母数字键的 pynput.keyboard.KeyCode, 或者只是 None 用于未知键。

【讨论】:

  • 将无法在 Mac 中收听字母数字键。
  • 为什么听不到字母数字键?
猜你喜欢
  • 2020-05-30
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 2022-01-02
  • 2020-12-15
相关资源
最近更新 更多