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
TypeError: MouseSwitch() missing 8 required positional arguments: 'msg', 'x', 'y', 'data', 'time', 'hwnd', and 'window_name'
Here's the code. It's supposed to just print all the event info, which it does until it crashes.
import pythoncom
import pyHook
def OnMouseEvent(event):
print ('MessageName:',event.MessageName)
print ('Message:',event.Message)
print ('Time:',event.Time)
print ('Window:',event.Window)
print ('WindowName:',event.WindowName)
print ('Position:',event.Position)
print ('Wheel:',event.Wheel)
print ('Injected:',event.Injected)
print ('---')
return True
hm = pyHook.HookManager()
hm.MouseAll = OnMouseEvent
hm.HookMouse()
pythoncom.PumpMessages()
Any help would be appreciated.
UPDATE! Having done some further testing, the crash only seems to happen when mousing over certain windows (such as the skype contact list). I also get the same error message (but with no crash) if I mouse over the header of a google chrome window.
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: