Есть ли способ использовать xdotool
определенное количество щелчков мышью в секунду, удерживая нажатой определенную клавишу?
Есть ли способ использовать xdotool
определенное количество щелчков мышью в секунду, удерживая нажатой определенную клавишу?
Ответы:
Это мой скрипт для bash xdotool
. Вы можете установить его с помощью сочетания клавиш. Останавливается, когда вы двигаете мышь. Конечно, вы можете сделать свой собственный сценарий на свой вкус.
#!/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
libxdo
или подобную библиотеку напрямую, без необходимости так часто создавать новые процессы?
xdotool keydown [key]
выше цикл while и xdotool keyup [key]
в оператор if, чтобы удерживать клавишу
Частичный ответ. Во-первых, вы должны связать свой ключ для запуска кода. ИМХО самый простой способ сделать это с помощью AutoKey, который предоставляет эту функцию вместе со множеством других функций автоматизации клавиатуры.
После этого вы просто напишите очень маленький макрос клавиатуры (в Python), который использует xdotool для выдачи события мыши, а затем перестанете спать на одну секунду, деленную на количество событий, которые вы хотите в секунду. Часть, в которой я не уверен, это обнаружение отпускания ключа, чтобы остановить процесс, но так как макрос написан на Python, почти все должно быть возможно.
Поскольку выполнение кода требует времени и т. Д., Это не будет точно так много в секунду, и вам придется соответствующим образом скорректировать время ожидания. Клики не будут распределяться одинаково по тем же причинам, что и загрузка системы.
Для большинства практических применений такой подход должен быть «достаточно хорошим».
Если это звучит так, как будто это будет работать для вас, то мы могли бы углубиться в реальную реализацию на форуме или вне форума.