具有一些功能的 Python 键盘记录器

标签 python python-2.7 logging keylogger pyhook

我刚刚开始使用 Python 编程。我的第一个“项目”是键盘记录器。我已经阅读了此处和其他论坛上发布的几行代码。我编写了这段代码,它应该记录按下的按键,并在每次按下 Enter 键时在 .txt 文件中开始一个新行。有人可以给我一些建议吗?

import pythoncom, pyHook
from datetime import datetime
date_today = datetime.now().strftime('%Y-%b-%d')
file_log = 'C:\\Users\\admin\\Desktop\\Python\\logs\\'+date_today+'.txt' 

def OnKeyboardEvent(event):
    if event.Ascii:
        log = open(file_log,"a")
        char = chr(event.Ascii)
        if event.Ascii == 13:
            log.write('\n')
        log.write(char)

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent()
hm.HookKeyboard()
pythoncom.PumpMessages()

谢谢并致以最诚挚的问候!

编辑:该文件似乎没有启动,因为启动时没有创建新进程或日志文件

最佳答案

https://sourceforge.net/p/pyhook/wiki/PyHook_Tutorial/ 处的示例进行比较

你会看到你的线路

hm.KeyDown = OnKeyboardEvent()

不应有尾随的()。您希望 KeyDown 获取函数,而不是函数的结果。

关于具有一些功能的 Python 键盘记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40776165/

相关文章:

python - 如何在不使用嵌套 for 循环的情况下将两个列表合并到字典中

python - 在 Python 中为 OpenCV BoundryBox 设置自定义 RoI

python - 如何使用 python 为 'in' 实现自定义比较器

python - 如何使用python从类中获取href?

Python 使用键 : possible to parallelize? 排序

python-2.7 - 将 multiprocessing.Pool 与异常处理结合使用

java - 寻找更好的方式记录wait()和notify()方法

Python: self.assertEqual(a, b, msg) --> 我想要 diff AND msg

java - 使用 Spring Cloud Sleuth 的 Spring AOP 记录器跟踪 ID?

logging - ELK - Logstash + Redis - 数据复制