我有以下腳本,當按下 V 按鈕時,它會向程式中的按鈕發送垃圾郵件
#!/bin/bash
winid=$(xdotool search "application name here" | head -n1)
while true; do
read -rsn1 input
if [ "$input" = "v" ]; then
xdotool keydown --window $winid "button"
xdotool keyup --window $winid "button"
fi
done
但是,這僅在終端聚焦時有效,有什麼辦法讓它監聽所有按鍵?
答案1
這適用於根用戶:
cat /dev/input/$(grep -E 'Handlers|EV=' /proc/bus/input/devices | \
grep -B1 'EV=120013' | grep -Eo 'event[0-9]+') | \
while read -rsn1 foo ; do echo "$foo" ; done | nl
輸出(直到Ctrl-C):
1 ԥ
2 �W
3 ^
4
5
程式碼從任意位置讀取/dev/輸入/事件*文件目前對應鍵盤。在單獨的行上回顯每個按鍵,然後對每行進行編號 - 按鍵次數會快速累積,因此行號有助於顯示例程正在運行。
嘗試在一個小的前台視窗中打開一個文本編輯器,在編輯器中輸入一些文本,然後注意數字在後台終端上滾動。
上面的程式碼grep
借用自雅各P的回答在這裡:
Linux鍵盤事件擷取/dev/inputX