我正在学习 pynput 并从事一些项目。 pynput 正在工作,但在涉及大写字母或特殊字符(如 !@#$%^&** 等)时不起作用,但 ., 正在工作。

代码:

 from pynput.keyboard import Key, Controller

 keyboard = Controller()

 phrase = "Hey there, smile :)"
 keyboard.type(phrase)

输出:
aey there, smile aa

如您所见,它不会打印出大写字母或特殊字符。而不是 Hey 它正在做 aey
a 替换大写字母和特殊字符

注意:我已经用 windows 平台测试了代码,它运行得非常好。我假设这是我的 Mac 的错。

最佳答案

这不是一个完整的答案,但它为您提供了 潜在 在您的 Mac 平台上使用 pynput 的步骤。

Mac OS X

出于安全原因,最新版本的 Mac OS X 限制了对键盘的监控。因此,以下情况之一必须为真:

  • 进程必须以 root 身份运行。
  • 您的应用程序必须在启用辅助设备访问下的白名单中。请注意,这可能需要您打包应用程序,否则整个 Python 安装必须被列入白名单。
  • 在 Mojave 之后的版本中,如果从终端运行脚本,您可能还需要将终端应用程序列入白名单。

  • 请注意,这不适用于监控鼠标或触控板。

    Platform limitations for pynput

    关于python - pynput 不适用于大写和特殊字符——Mac OS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53861457/

    10-12 18:59