我想制定一个自动化策略,如果我按下 Alt 键和任何其他键,它将模拟按下该键的键盘按键 9 次。
例如,我按下 Alt + q,它将模拟按下 q 9 次。例如,如果我在记事本中,我将看到
qqqqqqqqq
现在,大多数教程都展示了如何将输出反转为文本文件,例如通过运行
myScript.sh > out.txt
不,我不想这样。我想在后台运行我的脚本,并在计算机的任何地方使用它,每当我按下 alt + 任意键时,我都会看到该键被按下 9 次。例如,这在游戏中很有用。
我尝试了以下方法,但不起作用。我没有看到它检测到任何东西
#!/bin/bash
while true; do
read -rsn1 key < /dev/null
# Check if Alt key is pressed (Escape sequence for Alt is "\e")
if [[ "$key" == $'\e' ]]; then
read -rsn1 key < /dev/null # Read the next key
# Check if Alt + alphabetical character was pressed (excluding 'z')
if [[ "$key" =~ [a-y] ]]; then
xdotool type --delay 100 "$key$key$key$key$key$key$key$key$key"
fi
fi
done
- 我正在运行我的脚本:
$ chmod +x ./script.sh
$ ./script.sh &
答案1
#!/bin/bash
while true; do
read -rsn1 key < /dev/null
# Check if Alt key is pressed (Escape sequence for Alt is "\e")
if [[ "$key" == $'\e' ]]; then
read -rsn1 key < /dev/null # Read the next key
# Check if Alt + alphabetical character was pressed (excluding 'z')
if [[ "$key" =~ [a-y] ]]; then
xdotool type --repeat=9 --delay=100 "$key"
fi
fi
done
您需要--repeat
按下的次数。如果没有,
您可能需要。xdotool keydown
type
--repeat
笔记:您可能想要定位特定窗口。
window="$(xdotool getactivewindow)"
或者,您可以提示用户选择:xdotool selectwindow