Trying to hook into mouse events but in my early tests the program stops responding after about 30 seconds[EDIT: See bottom of post] and gives this error
pyHook is more oriented to python 2. There are repositories in github to use it in python 3 as will as modifications and extensions and anymore, better use pynput in python 3 as follows:
# -*- coding: utf-8 -*-
from pynput.keyboard import Listener
def key_recorder(key):
f=open('keylogger.txt','a')
keyo=str(key)
if keyo=="Key.enter":
f.write('\n')
elif keyo=="Key.space":
f.write(" ")
elif keyo =="Key.backspace":
#f.write(keyo.replace(keyo,""))
size=f.tell() # the size...
f.truncate(size-1)
elif keyo=="Key.alt_l" or keyo=="Key.tab":
f.write('')
elif keyo=="Key.ctrl_l":
f.write('')
elif keyo=="Key.alt_gr":
f.write('')
else:
print(keyo)
f.write(keyo.replace("'",""))
with Listener(on_press=key_recorder) as l :
l.join()
I had this with KeyboardSwitch
instead of MouseSwitch
and traced it to a UnicodeDecodeError
when pyHook tries to interpret the window name as ascii. It fails on Skype which has unicode characters in its window name. I've posted how I fixed it here. But I had to rebuild pyHook.