[ Foro de Python ]

¿Se puede detectar cualquier input de texto del ordenador con Python?

30-Aug-2020 16:55
Diego Grande Garrido
3 Respuestas

¡Hola!

Tengo un ordenador con un teclado que por lo visto venía defectuoso y cuando le doy a la barra de espacio, lo mismo pone 2 espacios seguidos, que uno solo, como tiene que ser, que ninguno.

Lo que me gustaría es que se pudiera hacer una aplicación que corriese en segundo plano y detectase cualquier input, como éste donde estoy escribiendo ahora en el navegador o como un documento de texto del editor o ide que use o lo que sea.... y cada vez que al pulsar la tecla de espacio detecte 2 espacios, los cambie por uno sólo.

Algo como lo que hace este código:

import re

def normalize_whitespace(string):
   return re.sub(r'(\s)\1{1,}', r'\1', string)

Pero que lo haga automáticamente en segundo plano según se van pulsando las teclas del teclado.

En caso de que no se pueda, ¿puede alguien decirme si sabe en qué lenguaje sí se puede hacer?

¡Muchas gracias!


30-Aug-2020 20:14
Nacho Cabanes (+84)

Yo hice algo parecido para un ratón que me daba dobles clics con el botón secundario de vez en cuando. En mi caso, usé AutoHotkey, pero otra herramienta similar que también te puede servir es AutoIt. Ambas están diseñadas para quedar en segundo plano y se utilizan mucho para automatizar tareas repetitivas.


30-Aug-2020 23:04
Diego Grande Garrido

¡Hola! Muchas gracias, Nacho!
Entonces con AutoHotkey ¿sería algo así?
::  ::
¿O tendría  que  ser así más bien?
::\s)\1{1,}::\s)\
¡Un saludo!


31-Aug-2020 12:57
Nacho Cabanes (+84)

Lo tengo muy olvidado ya, pero yo primero probaría la primera alternativa (quizá indicando que no hace falta un separador posterior). Si funciona así, ya lo tienes solucionado de forma sencilla ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)