如何制作带有全局开始和停止键的自动答题器

如何制作带有全局开始和停止键的自动答题器

所以我有一个自动点击器脚本,它是这个简单的命令:

xdotool click --delay 5 --repeat 900000 1

我必须切换到终端并Ctrl-C中断脚本才能停止它。然后再次运行即可重新启动。

所以我开始使用read命令来检查按键输入,以避免这种来回切换。然而,这只检查终端的输入。我正在点击其他地方,并且希望能够从那里开始和停止。

是否有一个版本read可以检查全局击键?

答案1

通过键入xinput --list,您将获得系统中所有输入设备的列表。您还可以使用以编程方式获取每个键的状态xinput --query-state DEVICE_ID

1 class :
KeyClass
    key[0]=up
    key[1]=up
    key[2]=up
...

首先,您需要找出要使用的密钥代码。您可以通过运行xinput --test DEVICE_ID并按 键来完成此操作。

key press   ###
key release ###

一旦找到正确的密钥,就可以编写这样的脚本。

#!/bin/bash

while true; do

# Replace DEVICE_ID and KEYCODE.
inp=`xinput --query-state DEVICE_ID | grep -o 'button\[KEYCODE\]=down'`

if [ ! -z "$inp" ]; then

xdotool click 1

fi

done

当用户按住按钮时,这将垃圾邮件单击鼠标按钮

答案2

您可以使用另一个扩展 - numlockx

这是我的想法。

你可以通过安装 xdotools 和 numlockxsudo apt-get install -y numlockx xdotool

那么你就可以继续使用这样的东西。

DELAY=5
while true
do
  NUMLOCK=$(numlockx status)
    if [ "$NUMLOCK" == "Numlock is on" ]
    then
    xdotool click 1
    fi
  sleep $DELAY
done

这会导致全局答题器与您的数字锁定键相关联,并有 5 秒的延迟。您可以更改延迟以使其以更短的间隔发出咔嗒声。

相关内容