Как я могу управлять клавиатурой и мышью с помощью Python?

Как я могу управлять мышью и клавиатурой в Python?

Идея состоит в том, чтобы сделать то же самое, что и класс Robot () в Java. Можете сказать: переместите мышь отсюда сюда, щелкните там, напишите, что все на экране.

  • Есть ли эквивалент Python для класса AWT Robot от Java?
  • Для Windows есть win32api, но я использую в основном Linux.

    Для Linux есть Xlib, но он работает и для клавиатуры? (найдена только ссылка на мышь)

    Существует ли кросс-платформенное решение? (Linux, Windows и даже OS X будут отличными.)

  • Запуск сценария bash из Python
  • UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0x9c
  • Простая проблема развертывания Python - целый мир боли
  • Игнорировать регистр в glob () в Linux
  • Размер буфера по умолчанию для файла в Linux
  • Каков правильный способ заставить приложение PyQt покинуть консоль (Ctrl-C)?
  • 8 Solutions collect form web for “Как я могу управлять клавиатурой и мышью с помощью Python?”

    Я использую dogtail ( https://fedorahosted.org/dogtail/ ), чтобы делать такие вещи, используя это, я создал автоматическое тестирование из моего приложения linux (ubuntu). Эта структура нажимает кнопки и типы на текстовые поля.

    см. пример gedit, https://fedorahosted.org/dogtail/browser/examples/gedit-test-utf8-procedural-api.py

    Так что просто используйте dogtail, например

    dogtail.rawinput.click(100, 100) 

    Это полностью работает … по крайней мере на Mac. Это для перетаскивания мышью и т. Д., Но может быть соответствующим образом модифицировано.

     #!/usr/bin/python import sys import time from Quartz.CoreGraphics import * # imports all of the top-level symbols in the module def mouseEvent(type, posx, posy): theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, theEvent) def mousemove(posx,posy): mouseEvent(kCGEventMouseMoved, posx,posy); def mouseclickdn(posx,posy): mouseEvent(kCGEventLeftMouseDown, posx,posy); def mouseclickup(posx,posy): mouseEvent(kCGEventLeftMouseUp, posx,posy); def mousedrag(posx,posy): mouseEvent(kCGEventLeftMouseDragged, posx,posy); ourEvent = CGEventCreate(None); currentpos=CGEventGetLocation(ourEvent); # Save current mouse position mouseclickdn(60, 100); mousedrag(60, 300); mouseclickup(60, 300); time.sleep(1); mousemove(int(currentpos.x),int(currentpos.y)); # Restore mouse position 

    Вот вам интересный вопрос из Python Forum: Python Forum

    Edit: Был также интересный вопрос о stackoverflow относительно управления мышью … может быть, это хорошая отправная точка. Управление мышью с помощью Python

    Один из ответов относится к примеру Linux … который направляет вас к хорошей записи в блоге.

    для мыши я нашел pymouse, который, кажется, работает (я не полностью пробовал, маленький хак, необходимый для щелчка, cf проблем)

    для клавиатуры я не уверен, что Xlib может справиться с этой задачей. Я все еще смотрю, как писать что-то, но вы можете поймать ключевое событие, как описано здесь, или на C здесь, используя Xlib (но я не знаю C).

    вот пример, работающий только на gnome (пока недостаточно хорошо)

    В pymouse у них есть хороший способ заставить его работать на 3-х разных платформах, но нужно сделать 3 кода …

    Для linux есть Xlib, но он работает и для клавиатуры? (найдена только ссылка на мышь)

    Да, это тоже работает на клавиатуре.

    Для консоли попробуйте ncurses или slang. В другой ситуации попробуйте PyQt, PyGtk, TkInter.

    ВСЕ это решение являются кросс-платформенными и работают практически в любом месте.

    Кросс-платформенное решение для linux, windows и mac является автопилотом. https://github.com/msanders/autopy/

    Он позволяет управлять мышью и клавиатурой, снимать скриншоты и находить небольшие растровые изображения на больших растровых изображениях и должен быть очень удобным, если вы хотите автоматизировать какое-то приложение gui, на которое вы не контролируете.

    Я могу посоветовать вам PyAutoGUI , он позволяет полностью контролировать мышь и клавиатуру и получать скриншоты, и даже вы можете находить изображения на экране (да, например: где кнопка?), Очень полезно автоматизировать клики динамически.

    Наслаждаться 😉

    Python - лучший язык программирования в мире.