import time from pynput import mouse from pynput.mouse import Controller, Button import asyncio import win32Test mouse_controller = Controller() middle_point, base_width, base_height = win32Test.arrange_windows() print(middle_point) print(base_width) print(base_height) def in_monitorZone(): now_position = mouse_controller.position if now_position < (base_width, base_height): return True else: return False def on_click(x, y, button, pressed): # function:0 # x: # y: # button # pressed # # function:1 # x, # y, # dx, # dy, print('{0} at {1}'.format( 'Pressed' if pressed else 'Released', (x, y))) print(button) # 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): 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() # ...or, in a non-blocking fashion: listener = mouse.Listener( on_click=on_click, on_scroll=on_scroll) listener.start()