如何製作具有全域開始和停止鍵的自動答題器

如何製作具有全域開始和停止鍵的自動答題器

所以我有一個自動點擊器腳本,它是這個簡單的指令:

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 秒的延遲。您可以更改延遲以使其以更短的間隔發出咔嗒聲。

相關內容