pynput libreria example python keypress

python - libreria - pynput



Teclas presionadas en Python (7)

¿Es posible hacer que le parezca a un sistema que se presionó una tecla, por ejemplo, necesito hacer que se presione una tecla miles de veces, y me cuesta mucho tiempo hacerlo manualmente, me gustaría escribir algo para hacer? es para mí, y lo único que sé bastante bien es Python.

Una mejor manera de decirlo, necesito emular una pulsación de tecla, IE no captura una pulsación de tecla.

Más información (según lo solicitado): estoy ejecutando Windows XP y necesito enviar las claves a otra aplicación.


Probablemente sea ​​posible , pero, ¿dónde quieres que vaya la tecla presionada? Para otra aplicación? Ese sería probablemente el caso de entender el toolkit de ventanas de su plataforma y enviar los mensajes correctos a la ventana derecha.

Aclare sus requisitos, y estoy seguro de que podemos ayudar.


Si su plataforma es Windows, en realidad no recomendaría Python. En cambio, mira en Autohotkey . Confíe en mí, me encanta Python, pero en esta circunstancia, un macroprograma es la herramienta ideal para el trabajo. Las secuencias de comandos de Autohotkey son solo decentes (en mi opinión), pero la facilidad de simular la entrada le ahorrará incontables horas. Los scripts de Autohotkey también se pueden "compilar", por lo que no es necesario que el intérprete ejecute el script.

Además, si esto es para algo en la Web, recomiendo iMacros . Es un complemento de Firefox y, por lo tanto, tiene una integración mucho mejor con los sitios web. Por ejemplo, puede decir "escribir 1000 ''a en este formulario" en lugar de "simular un clic de mouse en (319,400) y luego presionar'' a ''1000 veces".

Para Linux, desafortunadamente no he podido encontrar una buena manera de crear fácilmente macros de teclado / mouse.


AutoHotKey es perfecto para este tipo de tareas (automatización / reasignación de teclado)

Script para enviar "A" 100 veces:

Send {A 100}

Eso es todo

EDITAR : para enviar las claves a una aplicación específica:

WinActivate Word Send {A 100}


Otra forma de establecer la ventana de preferir en primer plano antes de enviar evento de pulsación de tecla.

hwnd = win32gui.FindWindowEx(0,0,0, "App title") win32gui.SetForegroundWindow(hwnd)


También puede usar PyAutoGui para enviar pulsaciones de teclas virtuales.

Aquí está la documentación: https://pyautogui.readthedocs.org/en/latest/

import pyautogui pyautogui.press(''Any key combination'')

También puede enviar claves como la tecla Mayús o la tecla Intro con:

import pyautogui pyautogui.press(''shift'')

Pyautogui también puede enviar texto directo como ese:

import pyautogui pyautogui.typewrite(''any text you want to type'')

En cuanto a presionar la tecla "A" 1000 veces, se vería algo como esto:

import pyautogui for i in range(999): pyautogui.press("a")

alt-tab u otras tareas que requieren que se presione más de una tecla al mismo tiempo:

import pyautogui # Holds down the alt key pyautogui.keyDown("alt") # Presses the tab key once pyautogui.press("tab") # Lets go of the alt key pyautogui.keyUp("alt")


Compruebe este teclado del módulo con muchas funciones. Instálelo, quizás con este comando:

pip3 install keyboard

Entonces usa este código:

import keyboard keyboard.write(''A'',delay=0)

Si desea escribir ''A'' varias veces, simplemente use un bucle.
Nota :
Se presionará la tecla ''A'' para toda la ventana. Significa que la secuencia de comandos se está ejecutando y se fue al navegador, la secuencia de comandos comenzará a escribirse allí.


Instala las extensiones de pywin32 . Entonces puedes hacer lo siguiente:

import win32com.client as comclt wsh= comclt.Dispatch("WScript.Shell") wsh.AppActivate("Notepad") # select another application wsh.SendKeys("a") # send the keys you want

Busque la documentación del objeto WScript.Shell (creo que está instalado por defecto en todas las instalaciones de Windows XP). Puedes comenzar aquí , tal vez.

EDITAR: Enviando F11

import win32com.client as comctl wsh = comctl.Dispatch("WScript.Shell") # Google Chrome window title wsh.AppActivate("icanhazip.com") wsh.SendKeys("{F11}")