import asyncio import pika from pynput import mouse from pynput.mouse import Controller import messageClass import screen connection = pika.BlockingConnection(pika.ConnectionParameters(host='192.168.0.13', port=5672)) channel = connection.channel() channel.exchange_declare("sync", "fanout", durable=True) mouse_controller = Controller() screen.arrange_master() def in_monitorZone(): now_position = mouse_controller.position if now_position < (500, 600): return True else: return False def on_click(x, y, button, pressed): # function:0 # x: # y: # button # pressed # # function:1 # x, # y, # dx, # dy, if in_monitorZone(): if pressed: message = messageClass.ClickMessage(x, y, button).getMessage() channel.basic_publish(exchange='sync', routing_key='', body=message) print(time.time()) # if not pressed: # # Stop listener # return False async def scroll_to_next_point(middle_point, mouse_controller, dx, dy): for i in range(1, len(middle_point)): print('Scrolled to next point') mouse_controller.position = middle_point[i] await asyncio.sleep(1) mouse_controller.scroll(dx, dy) def on_scroll(x, y, dx, dy): if in_monitorZone(): message = messageClass.ScrollMessage(x, y, dx, dy).getMessage() channel.basic_publish(exchange='sync', routing_key='', body=message) # print('Scrolled {0} at {1}'.format( # 'down' if dy < 0 else 'up', # (x, y))) # if in_monitorZone(): # origin = mouse_controller.position # for i in range(1, len(middle_point)): # print('scrolled') # mouse_controller.position = middle_point[i] # mouse_controller.click(Button.right, 1) # time.sleep(0.5) # mouse_controller.position = origin # Collect events until released with mouse.Listener( on_click=on_click, on_scroll=on_scroll) as listener: listener.join()