Linux
如何通過 shell 腳本注入擊鍵?
我正在嘗試將擊鍵注入輸入守護程序,以模擬從 Bash 腳本輸入。這是可能的,如果是這樣,我怎樣才能做到這一點?
如果您在 X 級別操作(如 Gilles 的問題),請像這樣使用xdotool:
xdotool key KEYSTROKE_SPECIFIER
其中 KEYSTROKE_SPECIFIER 可以是“a”或“F2”或“control+j”
編輯:對不起,我錯過了你對 Gilles 問題的回答。我將把這個回复留在這裡作為 X 案例的解決方案。
使用
uinput
驅動程序。我不認為有一個實用程序。您將不得不編寫或改編一些 C 程式碼。簡而言之:#include <fcntl.h> #include <ioctl.h> #include <unistd.h> #include <linux/input.h> #include <linux/uinput.h> /* Set up a fake keyboard device */ fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK); // or /dev/input/uinput ioctl(fd, UI_SET_EVBIT, EV_KEY); struct uinput_user_dev uidev = …; write(fd, &uidev, sizeof(uidev)); ioctl(fd, UI_DEV_CREATE); /* Send an event */ struct input_event ev = …; write(fd, &ev, sizeof(ev)); /* Clean up */ ioctl(fd, UI_DEV_DESTROY); close(fd);
更完整的參考資料: