Вы хотите, чтобы xdotool нажимал и удерживал клавишу, или вы хотите, чтобы xdotool нажимал, когда вы удерживаете клавишу?
Сет
Ответы:
1
Это мой скрипт для bash xdotool. Вы можете установить его с помощью сочетания клавиш. Останавливается, когда вы двигаете мышь. Конечно, вы можете сделать свой собственный сценарий на свой вкус.
#!/bin/basheval $(xdotool getmouselocation --shell)
echo $X $Y
x1=$X
y1=$Y
COUNTER=1
COUNTEND=100000#REPEAT= 0.09swhile[ $COUNTER -lt $COUNTEND ];do
echo the counter is $COUNTER
xdotool click 1eval $(xdotool getmouselocation --shell)# cancel if mouse movedif[ $x1 != $X ]||[ $y1 != $Y ];then
echo Mouse moved - script terminated
exit 1fi#this sleep works for repetition rate
sleep 0.01s
let COUNTER=COUNTER+1# xdotool click --delay 90 --repeat 1000 1done
Неплохо! Я ожидаю, что разветвление и выполнение 4 новых процессов каждые 10 мс потребует значительного количества ресурсов и довольно сильно заблокирует ядро в критических секциях. Можете ли вы портировать сценарий на что-то вроде Python, Perl или C, который использует libxdoили подобную библиотеку напрямую, без необходимости так часто создавать новые процессы?
Дэвид Фёрстер
Также добавьте xdotool keydown [key]выше цикл while и xdotool keyup [key]в оператор if, чтобы удерживать клавишу
Эван Чен
хм, у меня есть свое собственное приложение на Python, которое использует xdotool, но я не использую libxdo .. Довольно легко добавить больше функций к кликеру мыши, но в последнее время я очень занят, поэтому в будущем я сделаю это плохо. github.com/FDJ- Dash / Multitool / blob / master / mouseclicker /…
Фернандо Д Хайме
0
Частичный ответ. Во-первых, вы должны связать свой ключ для запуска кода. ИМХО самый простой способ сделать это с помощью AutoKey, который предоставляет эту функцию вместе со множеством других функций автоматизации клавиатуры.
После этого вы просто напишите очень маленький макрос клавиатуры (в Python), который использует xdotool для выдачи события мыши, а затем перестанете спать на одну секунду, деленную на количество событий, которые вы хотите в секунду. Часть, в которой я не уверен, это обнаружение отпускания ключа, чтобы остановить процесс, но так как макрос написан на Python, почти все должно быть возможно.
Поскольку выполнение кода требует времени и т. Д., Это не будет точно так много в секунду, и вам придется соответствующим образом скорректировать время ожидания. Клики не будут распределяться одинаково по тем же причинам, что и загрузка системы.
Для большинства практических применений такой подход должен быть «достаточно хорошим».
Если это звучит так, как будто это будет работать для вас, то мы могли бы углубиться в реальную реализацию на форуме или вне форума.
Ответы:
Это мой скрипт для bash
xdotool
. Вы можете установить его с помощью сочетания клавиш. Останавливается, когда вы двигаете мышь. Конечно, вы можете сделать свой собственный сценарий на свой вкус.источник
libxdo
или подобную библиотеку напрямую, без необходимости так часто создавать новые процессы?xdotool keydown [key]
выше цикл while иxdotool keyup [key]
в оператор if, чтобы удерживать клавишуЧастичный ответ. Во-первых, вы должны связать свой ключ для запуска кода. ИМХО самый простой способ сделать это с помощью AutoKey, который предоставляет эту функцию вместе со множеством других функций автоматизации клавиатуры.
После этого вы просто напишите очень маленький макрос клавиатуры (в Python), который использует xdotool для выдачи события мыши, а затем перестанете спать на одну секунду, деленную на количество событий, которые вы хотите в секунду. Часть, в которой я не уверен, это обнаружение отпускания ключа, чтобы остановить процесс, но так как макрос написан на Python, почти все должно быть возможно.
Поскольку выполнение кода требует времени и т. Д., Это не будет точно так много в секунду, и вам придется соответствующим образом скорректировать время ожидания. Клики не будут распределяться одинаково по тем же причинам, что и загрузка системы.
Для большинства практических применений такой подход должен быть «достаточно хорошим».
Если это звучит так, как будто это будет работать для вас, то мы могли бы углубиться в реальную реализацию на форуме или вне форума.
источник