Python Pynput键盘记录器仅返回Shift、Command、Space和Capslock键
我希望这不是以前讨论过的话题。我的搜索结果没有返回任何相关信息,但请随时告诉我 我正在编写一个非常基本的Python键盘记录器(用于一个更大项目的一部分)。我使用pynput来监听击键,并使用日志模块将其写入txt文件(见下文)。到目前为止,它似乎还在工作,唯一的问题是它只记录shift、command、space和caps锁键。不记录所有其他按键,如字母、数字等 我正在运行OSX 10.12(Sierra),Python 3.5.2 如果您有任何关于原因(以及可能的解决方案)的建议/想法,我们将不胜感激 谢谢Python Pynput键盘记录器仅返回Shift、Command、Space和Capslock键,python,macos,Python,Macos,我希望这不是以前讨论过的话题。我的搜索结果没有返回任何相关信息,但请随时告诉我 我正在编写一个非常基本的Python键盘记录器(用于一个更大项目的一部分)。我使用pynput来监听击键,并使用日志模块将其写入txt文件(见下文)。到目前为止,它似乎还在工作,唯一的问题是它只记录shift、command、space和caps锁键。不记录所有其他按键,如字母、数字等 我正在运行OSX 10.12(Sierra),Python 3.5.2 如果您有任何关于原因(以及可能的解决方案)的建议/想法,我们
from pynput.keyboard import Key, Listener
import logging
log_dir = ""
logging.basicConfig(filename=(log_dir + 'key_log.txt'), level=logging.DEBUG, format='%(asctime)s: %(message)s')
def on_press(key):
logging.info(str(key))
with Listener(on_press=on_press) as listener:
listener.join()
单字符键和其他键的处理方式不同。为您的on_press功能尝试以下操作:
def on_press(key):
try: logging.info(key.char) # letters, numbers etc
except: logging.info(key.name) # other keys
快速解决方案:以root用户身份运行
这本书有一些有用的东西
MacOSX
出于安全原因,Mac OSX的最新版本限制了对键盘的监控。出于这个原因,其中一个
以下内容必须正确:
- 进程必须以root用户身份运行。
- 您的应用程序必须在“启用辅助访问”下的白色列表中 设备。请注意,这可能需要 您必须打包应用程序,否则整个Python安装都必须是白名单
请注意,这不适用于鼠标或触摸板的监控。更多的研究发现了一些可能存在的问题。pynput 1.2概述文档()强调OSX的安全协议可能限制程序监视键盘的能力,并建议编译代码并将.exe文件白名单以使其正常工作。我使用pyinstaller-w-F进行了一次尝试,但似乎没有任何帮助。有人在这里有任何经验/意见吗?嗨,你能找到解决方案吗?我已经找了两天了..嗨@Prakash047,我在OSX中白名单了空闲。这似乎可以在空闲状态下执行代码(包括写入外部日志文件),但当我尝试将已编译的exe列入白名单时,它似乎不起作用。如果你能找到解决办法,请告诉我!嗨,山姆,这里又是一样的!!顺便问一下,你是如何把你的python代码编译成exe或app的?谢谢@祥瑞找到了解决办法