es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Detección de clic + Comando: Pynput

Por lo tanto, estoy trabajando en algo con pynput y quiero que cada vez que haga clic imprima una palabra diferente como:

Haga clic:
Imprimir(“HI”)
Haga clic:
Imprimir(“WHY”)
Haga clic:
Imprimir(“BYE”)

Pero el código que estoy usando es:

def on_click(x, y, button, pressed):
print(c.format(
print(“HI – Haga clic”)
if pressed else
print(“HI – No clic”),
(x, y)))
if not pressed:
# Detener la escucha
return False
with Listener(
on_click=on_click) as listener:
listener.join()

Por lo tanto, después de decir (“HI – No clic”) y vuelva a hacer clic, quiero que diga (“WHY – Haga clic”) y (“WHY – No clic”). Si alguien sabe cómo POR FAVOR responda, EDITAR: Y por favor muéstrame cómo reproducir un audio para el clic y sin clic con la lista como: [‘food.wav’, ‘click.wav’] Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para imprimir una palabra diferente cada vez que se hace clic en el mouse utilizando pynput, se puede utilizar una lista para almacenar las palabras y un contador para hacer un seguimiento del índice actual en la lista que se está utilizando. Aquí hay un ejemplo de código:

    import winsound
    from pynput import mouse
    
    # lista de palabras y sonidos a imprimir
    words = ["HOLA", "POR QUE", "ADIOS"]
    sounds = ["click.wav", "comida.wav", "beep.wav"]
    
    # contador para el índice actual en la lista
    current = 0
    
    # definir la función on_click
    def on_click(x, y, button, pressed):
        global current  # utiliza la palabra clave global para modificar la variable current
        if pressed:
            print("{} - Clic".format(words[current]))
            winsound.PlaySound(sounds[current], winsound.SND_ASYNC) # reproducir sonido de forma asíncrona
            current = (current + 1) % len(words)  # incrementar el contador y volver al inicio si es necesario
        else:
            print("{} - Sin clic".format(words[current]))
            winsound.PlaySound(sounds[current], winsound.SND_ASYNC)
        return True
    
    # iniciar el listener
    with mouse.Listener(on_click=on_click) as listener:
        listener.join()
    

    En este código, la lista words contiene las diferentes palabras a imprimir y la lista sounds contiene los nombres de los archivos de audio para reproducir en cada evento de clic o sin clic. La variable current se utiliza para hacer un seguimiento del índice actual en la lista que se está utilizando y volverá al inicio si llega al final de la lista.

    El módulo winsound se utiliza para reproducir los archivos de audio y la bandera SND_ASYNC se utiliza para reproducirlos de forma asíncrona.

    Entonces, cada vez que se hace clic en el mouse, se imprime/reproduce la palabra y el sonido actual, y se actualiza el contador current al siguiente índice en la lista. Cuando se hace clic sin presionar, la palabra y el sonido actuales se imprimen/reproducen nuevamente.

Comments are closed.