我有一款游戏需要我反复点击一个移动的物体,如果你只有触摸板而没有单独的鼠标按钮,这将非常困难。
我想要的是一个工具/脚本,可以在按住特定键盘按钮或组合键(例如Control (right)+ )的同时反复模拟鼠标单击(左键,大约每秒 5 次单击) Menu。
我知道我可以使用以下命令模拟重复点击
xdotool click --repeat 10 --delay 200 1
但我不知道如何让它在按住特定的键盘组合键时发出点击声,而不是固定的点击次数。
答案1
这是我的第一次和第五次尝试。如果你不需要更改延迟,第一次还不错。它似乎在某些按键组合上存在一些问题,但不确定是什么原因造成的。
方法 1,在~/.xbindkeysrc
:
keystate_scrolllock = enable
"xdotool click 1"
Scroll_Lock
方法 5:
keystate_scrolllock = enable
"/home/USER/infinite_clicks.sh event16 KEY_SCROLLLOCK 0.1 &"
Scroll_Lock
具有infinite_clicks.sh
:
#!/bin/bash
kbd=$1 #"event16"
key=$2 #"KEY_SCROLLLOCK"
delay=$3 #"0.1"
fn=`basename "$0"`
if [ $# -le 1 ]; then
echo "Usage: $fn input_device key_name delay"
echo "Example: $fn event16 KEY_SCROLLLOCK 0.1"
echo "Must run as superuser."
exit 1
fi
# do not start if already started
if [[ $(pidof -o %PPID -x $fn) ]]; then
exit 0
fi
while true; do
# this is why you need to use sudo/superuser
evtest --query /dev/input/$kbd EV_KEY $key
# get evtest return code, if it's 0 the key is up
if [[ "$?" -eq "0" ]]; then
break
fi
xdotool click 1 &
sleep "$delay"
done
exit 0
使用此代码,您还需要运行 xbindkeyssudo xbindkeys -f ~/.xbindkeysrc
您可以使用找到您的键盘事件编号,然后使用事件编号sudo evtest
找到键名称。sudo evtest /dev/input/eventXXX
答案2
我一直在使用 ClickItAuto,这是一个小程序,与任何 Java 软件一样,可以在多个操作系统中执行