web-dev-qa-db-fra.com

Quel est le moyen le plus simple de simuler le clavier et la souris sur Python?

J'ai besoin de faire des macros et je veux savoir quelle est la façon la plus recommandée de le faire.

Donc, je dois écrire quelque chose, cliquer sur certains endroits et émuler la touche TAB.

23
Shady

Je fais des tests automatisés en Python. J'ai tendance à utiliser ce qui suit:

http://www.tizmoi.net/watsup/intro.html
Edit: Link is dead, version archivée: https://web.archive.org/web/20100224025508/http://www.tizmoi.net/watsup/intro.html

http://www.mayukhbose.com/python/IEC/index.php

Je ne simule pas (presque jamais) les appuis sur les touches et les mouvements de la souris. J'utilise habituellement COM pour définir les valeurs des objets Windows et appeler leurs méthodes .click (). 

Vous pouvez envoyer des signaux de frappe avec ceci:

import win32com.client

Shell = win32com.client.Dispatch("WScript.Shell")
Shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused
Shell.SendKeys("{DELETE}") # Delete selected text?  Depends on context. :P
Shell.SendKeys("{TAB}") #Press tab... to change focus or whatever

Tout cela est sous Windows. Si vous êtes dans un autre environnement, je n'en ai aucune idée. 

26
Ishpeck

Peut-être cherchez-vous Sendkeys ?

SendKeys est un module Python pour Windows pouvant envoyer un ou plusieurs Touches ou combinaisons de touches à la fenêtre active.

il semble que ce soit uniquement des fenêtres

Aussi vous avez pywinauto (copié de mon SO réponse )

pywinauto est un ensemble d'open-source (LGPL) pour l’utilisation de Python en tant que Pilote d’automatisation d’interface graphique pour Windows NT systèmes d’exploitation basés sur NT/W2K/XP.

et exemple de la page web

> from pywinauto import application
> app = application.Application.start("notepad.exe")
> app.notepad.TypeKeys("%FX")
> app.Notepad.MenuSelect("File->SaveAs")
> app.SaveAs.ComboBox5.Select("UTF-8")
> app.SaveAs.edit1.SetText("Example-utf8.txt")
> app.SaveAs.Save.Click()
15
joaquin

pyautogui est un excellent package pour envoyer des clés et automatiser plusieurs tâches liées au clavier/souris. Check out Contrôle du clavier et de la souris à l’aide de GUI Automation et Documentation de PyAutoGUI .

7
Mitesh Budhabhatti

Vous pouvez utiliser bibliothèque PyAutoGUI pour Python, qui fonctionne sous Windows, macOS et Linux.

Souris

Voici un code simple pour déplacer la souris au milieu de l'écran:

import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

Page Documents: Fonctions de contrôle de la souris .

Question connexe: Contrôle de la souris avec Python .

Clavier

Exemple:

pyautogui.typewrite('Hello world!')                 # prints out "Hello world!" instantly
pyautogui.typewrite('Hello world!', interval=0.25)  # prints out "Hello world!" with a quarter second delay after each character

Page Documents: Fonctions de contrôle du clavier .


More reading: Contrôle du clavier et de la souris avec GUI Automation (Chapitre 18 du livre électronique).

Questions connexes:

0
kenorb