按住特定键盘按钮时自动单击鼠标

按住特定键盘按钮时自动单击鼠标

我有一款游戏需要我反复点击一个移动的物体,如果你只有触摸板而没有单独的鼠标按钮,这将非常困难。

我想要的是一个工具/脚本,可以在按住特定键盘按钮或组合键(例如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 软件一样,可以在多个操作系统中执行

https://github.com/DaGammla/ClickItAuto

答案3

有各种自动点击器软件可在线下载。

我为你推荐最大自动点击器因为它是一个跨平台应用程序(Linux + Windows),所以使用起来免费且安全。

相关内容