我写了一些类似于简单键盘记录器的东西,但遇到了一个问题:当我切换到另一个窗口时程序崩溃,其名称或路径包含西里尔字母
有错误
F:\Programs\Python36\python.exe F:/Files/MyProjects/KLPy/main.py
TypeError:KeyboardSwitch() 缺少 8 个必需的位置参数:“msg”、“vk_code”、“scan_code”、“ascii”、“flags”、“time”、“hwnd”和“win_name”
进程以退出代码 -1073740771 (0xC000041D) 结束
程序代码
def OnKeyboardEvent(event):
data = str(event.Key)
f = open('Logfile.txt', 'a')
f.write(data)
f.close()
hook = pyHook.HookManager()
hook.KeyDown = OnKeyboardEvent
hook.HookKeyboard()
pythoncom.PumpMessages()
如何解决?
pyHook 不使用 Unicode。他的 fork pyhook_py3k增加了对 Unicode 的支持。cpyHook.i文件中提供了 Unicode 支持,该文件在二进制程序集中编译成_cpyHook.xxx.pyd,因此更改它不是那么容易。
问题的解决方案: