Python Soucis If-else / library: keyboard

Fermé
lano - Modifié le 26 févr. 2023 à 14:13
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 - 26 févr. 2023 à 15:39

Bonjour,

Je pogramme en ce moment un autoclicker pour un site, seulement à certains moments il ne marche pas et j'aurais besoin de pouvoir l'arretez imédiatement. J'ai donc chercher une librairie me permettant de détecter une touche préssée puis d'arrêter le script après que la touche soit préssée. Mon probleme est que l'autoclicker d'apres ne marche pas : je ne peux qu'arretez le script.

 
from pynput.mouse import  Controller, Button
mouse = Controller()
from pynput.keyboard import  Key, Controller
Keyboard = Controller()
import time
import keyboard
def clic_droit(position_x,position_y):
    mouse.position = (position_x,position_y)
    mouse.press(Button.left)
    mouse.release(Button.left)
    time.sleep(0.5)

for n in range(10) :
    if keyboard.read_key() == "s":
            quit()
    else:
        clic_droit(1127, 123)

donc je pensais que lorsque j'appuierais pas sur "s" il réaliserait le clic, mais non rien à faire je ne peux qu'arrêter le script.

j'ai aussi esayer avec 

 
while 1 :

et

 
while True :

mais ca ne marche pas.


Windows / Chrome 110.0.0.0

A voir également:

3 réponses

NHenry Messages postés 15098 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 février 2024 329
26 févr. 2023 à 14:14

En en modifiant un peu
 

for n in range(10) :
    Key = keyboard.read_key()
    print(Key)
    if Key == "s":
        quit()
    else:
        clic_droit(1127, 123)

ça affiche quoi ?


0

Le résultat est le même : je dois appuyer sur une autre touche pour le lancer et si je veux l'arreter avec s quand il est deja lancer le script ne se stoppe pas.

La seule chose qui change est que ca print s dans mon terminal

0

J'ai compris quelque chose : quand j'appuie sur une autre touche que "s" l'autoclicker se met en marche. Je pense donc que le code veut dire : si c'est la touche s qui est préssée alors arreter, si c'est une autre touche qui est préssé alors commencer l'autocliker.

Seulement je voudrais que la touche "s" soit un peu une securite au cas où je veux l'arreter pour ne pas qu'il fasse n'importe quoi. Et je ne veux surtout pas devoir appuyer sur une autre touche que "s" pour le lancer. Auriez vous une autre librairie a me proposer ?

0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
26 févr. 2023 à 15:25

bonjour,

et ainsi?

for n in range(10) :
    if keyboard.is_pressed('s'):
            quit()
    else:
        clic_droit(1127, 123)
0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
26 févr. 2023 à 15:39

ou bien

import time
import keyboard
def c():
    print('c')
    time.sleep(0.5)
def q(e):
    global fini
    fini=True
fini=False
keyboard.on_press_key('s', q)
for n in range(10) :
    if fini:
            quit()
    else:
        c()
0