web-dev-qa-db-fra.com

Puis-je utiliser xdotool en tant que clic automatique?

Est-il possible d'utiliser xdotool pour effectuer un certain nombre de clics de souris par seconde tout en maintenant une touche enfoncée?

5
user276059

Ceci est mon script bash pour xdotool. Vous pouvez le définir avec un raccourci clavier. Il s'arrête lorsque vous déplacez la souris. Bien sûr, vous pouvez créer votre propre script selon vos goûts.

#!/bin/bash
eval $(xdotool getmouselocation --Shell)
echo $X $Y
x1=$X
y1=$Y
COUNTER=1
COUNTEND=100000
#REPEAT= 0.09s
while [ $COUNTER -lt $COUNTEND ]; do
  echo the counter is $COUNTER
  xdotool click 1
  eval $(xdotool getmouselocation --Shell)
  # cancel if mouse moved
  if [ $x1 != $X ] || [ $y1 != $Y ]; then
    echo Mouse moved - script terminated
    exit 1
  fi
  #this sleep works for repetition rate
  sleep 0.01s
  let COUNTER=COUNTER+1
#  xdotool click --delay 90 --repeat 1000 1
done
1
Fernando D Jaime

Réponse partielle. Tout d'abord, vous devez lier votre clé pour exécuter du code. Le moyen le plus simple de le faire à mon humble avis est AutoKey, qui fournit cette fonctionnalité ainsi que de nombreuses autres fonctionnalités d’automatisation du clavier.

Une fois cette opération effectuée, il vous suffit d'écrire une très petite macro de clavier (en Python) qui utilise xdotool pour générer l'événement de la souris, puis se met en veille pendant une seconde divisée par le nombre d'événements que vous souhaitez par seconde. La partie sur laquelle je ne suis pas sûr est de détecter la libération de clé pour arrêter le processus, mais puisque la macro est écrite en Python, presque tout devrait être possible.

Parce que le code prend du temps à s'exécuter, etc., ce ne sera pas précisément beaucoup par seconde et vous devrez ajuster le temps de sommeil en conséquence. Les clics ne seront pas parfaitement espacés pour les mêmes raisons que pour la charge du système.

Pour la plupart des applications pratiques, une telle approche devrait être "assez bonne".

Si cela semble fonctionner pour vous, nous pourrions approfondir la mise en œuvre réelle sur ou hors forum.

0
Joe