Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Clic souris répétitif automatique Ven 29 Jan 2021 - 19:46 | |
| Clic souris répétitif automatiqueBonsoir à tous ! La simulation d’un clic de souris répétitif automatique est comparable à une touche du clavier que vous maintenez enfoncée : L’action (inscrire une lettre pour le clavier) va se répéter automatiquement jusqu’au relâchement de la touche. Ici, c’est avec les boutons de souris que l’action sera répétée tant que le bouton reste appuyé. Pour illustrer l’exemple, j’ai créé un compteur qui s’incrémente automatiquement quand que le bouton gauche de la souris reste appuyé sur un des deux boutons (Up ou Down) du programme. J’ai ajouté une petite modulation de vitesse : le compteur démarre doucement et au bout de 10 "impulsions automatiques", il accélère à toute vitesse. N’hésitez pas à maintenir le bouton de la souris enfoncé pour voir le résultat. L’incrémentation pas à pas reste possible. Pour réaliser l'incrémentation automatique, j’ai testé avec des boucles REPEAT/UNTIL, WHILE/END_WHILE et GOTO/LABEL, cela fonctionne à tous les coups. Voici le code-source en version REPEAT/UNTIL, clic gauche de souris configuré, un délai de répétition de 300ms en vitesse lente et 20ms en vitesse rapide. - Code:
-
' simulation clic souris répétitif dim compteur% ,delai%, null% label up, down
button 1 top 1,50 left 1,50 caption 1,"Up"
button 2 top 2,150 left 2,50 caption 2,"Down"
alpha 3 top 3,90 left 3,50 font_size 3,24 caption 3,"0"
on_mouse_down 1,up on_mouse_down 2,down
end
up: off_mouse_down 1 if mouse_right_down(1) = 1 on_mouse_down 1,up return end_if null% = mouse_left_up(1) delai% = 300 repeat compteur% = compteur% + 1 caption 3,str$(compteur%) pause delai% delai% = delai% - 1 if delai% < 291 delai% = 20 end_if until mouse_left_up(1) = 1 on_mouse_down 1,up return
down: off_mouse_down 2 if mouse_right_down(2) = 1 on_mouse_down 2,down return end_if null% = mouse_left_up(2) delai% = 300 repeat compteur% = compteur% - 1 caption 3,str$(compteur%) pause delai% delai% = delai% - 1 if delai% < 291 delai% = 20 end_if until mouse_left_up(2) = 1 on_mouse_down 2,down return
Bonne programmation à tous !
Dernière édition par Marc le Sam 20 Mar 2021 - 14:43, édité 1 fois | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Clic souris répétitif automatique Sam 30 Jan 2021 - 14:38 | |
| Ah oui, bien ! C'est un bon truc qu'on peut retenir dans un coin et qui peut être utile un de ces quatre ! | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Clic souris répétitif automatique Mer 17 Fév 2021 - 0:32 | |
| Bonjour à tous ! J’ai remarqué une incompatibilité de mon source ci-dessus, fonctionnant avec des boucles REPEAT/UNTIL, avec le compilateur. Pour contrer ce dysfonctionnement, je vous propose ci-dessous la version équivalente équipée de boucles WHILE/END_WHILE. - Code:
-
' simulation clic souris répétitif dim compteur% ,delai%, null% label up, down
button 1 top 1,50 left 1,50 caption 1,"Up"
button 2 top 2,150 left 2,50 caption 2,"Down"
alpha 3 top 3,90 left 3,50 font_size 3,24 caption 3,"0"
on_mouse_down 1,up on_mouse_down 2,down
end
up: off_mouse_down 1 if mouse_right_down(1) = 1 on_mouse_down 1,up return end_if null% = mouse_left_up(1) delai% = 300 while mouse_left_up(1) <> 1 compteur% = compteur% + 1 caption 3,str$(compteur%) pause delai% delai% = delai% - 1 if delai% < 291 delai% = 20 end_if end_while on_mouse_down 1,up return
down: off_mouse_down 2 if mouse_right_down(2) = 1 on_mouse_down 2,down return end_if null% = mouse_left_up(2) delai% = 300 while mouse_left_up(2) <> 1 compteur% = compteur% - 1 caption 3,str$(compteur%) pause delai% delai% = delai% - 1 if delai% < 291 delai% = 20 end_if end_while on_mouse_down 2,down return Bonne programmation à tous ! | |
|
Contenu sponsorisé
| Sujet: Re: Clic souris répétitif automatique | |
| |
|