press - ¿Cuál es la forma más fácil de simular el teclado y el mouse en Python?
pynput (4)
¿Tal vez estás buscando Sendkeys ?
SendKeys es un módulo de Python para Windows que puede enviar una o más combinaciones de teclas o combinaciones de teclas a la ventana activa.
parece que solo tiene ventanas
También tienes pywinauto (copiado de mi answer SO)
pywinauto es un conjunto de módulos de código abierto (LGPL) para utilizar Python como ''controlador'' de automatización de GUI para sistemas operativos basados en Windows NT (NT / W2K / XP).
y ejemplo de la página 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()
Necesito hacer algunas macros y quiero saber cuál es la forma más recomendada de hacerlo.
Entonces, necesito escribir algo y hacer clic en algunos lugares con él y tengo que emular la tecla TAB.
Hago pruebas automatizadas en Python. Tiendo a usar lo siguiente:
http://www.tizmoi.net/watsup/intro.html
Editar: El enlace está muerto, versión archivada: https://web.archive.org/web/20100224025508/http://www.tizmoi.net/watsup/intro.html
http://www.mayukhbose.com/python/IEC/index.php
No siempre (casi nunca) simulo las pulsaciones de teclas y el movimiento del mouse. Usualmente uso COM para establecer valores de objetos de Windows y llamar a sus métodos .click ().
Puede enviar señales de pulsación de tecla con esto:
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
Esto es todo en Windows. Si estás en otro entorno, no tengo ni idea.
Puede usar la biblioteca PyAutoGUI para Python que funciona en Windows, macOS y Linux.
Ratón
Aquí hay un código simple para mover el mouse al centro de la pantalla:
import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
Página de documentos: funciones de control del mouse .
Pregunta relacionada: Controlar el mouse con Python .
Teclado
Ejemplo:
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
Página de documentos: funciones de control del teclado .
Más información: Controlar el teclado y el mouse con la automatización de GUI (Capítulo 18 de e-book).
Preguntas relacionadas:
- Biblioteca de automatización de GUI de Python para simular la interacción del usuario en aplicaciones .
- Python simula keydown .
pyautogui es un gran paquete para enviar claves y automatizar varias tareas relacionadas con el teclado / mouse. Consulte Controlar el teclado y el mouse con Automatización de la GUI y la documentación de PyAutoGUI .