listenTest.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import time
  2. from pynput import mouse
  3. from pynput.mouse import Controller, Button
  4. import asyncio
  5. import win32Test
  6. mouse_controller = Controller()
  7. middle_point, base_width, base_height = win32Test.arrange_windows()
  8. print(middle_point)
  9. print(base_width)
  10. print(base_height)
  11. def in_monitorZone():
  12. now_position = mouse_controller.position
  13. if now_position < (base_width, base_height):
  14. return True
  15. else:
  16. return False
  17. def on_move(x, y):
  18. return
  19. # print('Pointer moved to {0}'.format(
  20. # (x, y)))
  21. def on_click(x, y, button, pressed):
  22. print('{0} at {1}'.format(
  23. 'Pressed' if pressed else 'Released',
  24. (x, y)))
  25. print(button)
  26. # if not pressed:
  27. # # Stop listener
  28. # return False
  29. async def scroll_to_next_point(middle_point, mouse_controller, dx, dy):
  30. for i in range(1, len(middle_point)):
  31. print('Scrolled to next point')
  32. mouse_controller.position = middle_point[i]
  33. await asyncio.sleep(1)
  34. mouse_controller.scroll(dx, dy)
  35. def on_scroll(x, y, dx, dy):
  36. print('Scrolled {0} at {1}'.format(
  37. 'down' if dy < 0 else 'up',
  38. (x, y)))
  39. if in_monitorZone():
  40. origin = mouse_controller.position
  41. for i in range(1, len(middle_point)):
  42. print('scrolled')
  43. mouse_controller.position = middle_point[i]
  44. mouse_controller.click(Button.right, 1)
  45. time.sleep(0.5)
  46. mouse_controller.position = origin
  47. # Collect events until released
  48. with mouse.Listener(
  49. on_move=on_move,
  50. on_click=on_click,
  51. on_scroll=on_scroll) as listener:
  52. listener.join()
  53. # ...or, in a non-blocking fashion:
  54. listener = mouse.Listener(
  55. on_move=on_move,
  56. on_click=on_click,
  57. on_scroll=on_scroll)
  58. listener.start()