我最近了解到,如果我在 /dev/tty 中写入字符,它将模拟键盘的按键操作。
我想知道是否可以模拟按住某个键或组合键。
我正在寻找的是模拟 Alt + Tab 在打开的应用程序之间切换。 我不是在寻找替代品。我正在练习学习如何模拟键盘上的物理按键。 是否可以模拟组合键(如 Alt + Tab)?
另外,如何按Enter键?
看起来不是“\n”或“\r”或“\r\n”或“\n\r”。 我寻找 Enter 键的原因是我想在终端中执行“sudo”命令,当它提示输入密码时,我使用 /dev/tty 来回答这个问题,但标准输入或标准输出(使用“-S”选项和 sudo)似乎不起作用。
我是不是做错了什么? 是否有一些我应该寻找的库(例如 Expect )?或者我想做的事情是不可能的?
我正在使用 C++。我想做的就是尝试模拟键盘上的物理按键。操作系统是Ubuntu 13.04 (饲养环尾)。 (只是作为练习)
但我有两个目标:
- 创建一个使用 Alt + Tab 在应用程序之间切换的程序。
- 与 Linux 终端交互。
我找到了两种解决方案:
- 将对应按键的字符/codeASCII写入/dev/tty
- 将相应按键的字符/codeASCII写入标准输出和/或标准输入
但是它们都不起作用。我所做的是否正确?
最佳答案
X 不从 /dev/tty
读取击键。如果你想在 X 中模拟击键,你需要以另一种方式发送它们。如果您正在编写 shell 脚本,xdotool是你的 friend ;不过,如果您正在编写 C 语言,您可能会想要使用 libxdo ,xdotool 的底层库。如果您正在寻找更底层的东西,您可能会对 XCB Test API 感兴趣。 ,xdotool 和 libxdo 都依赖它。
除非您能提供有关 sudo 体验的更多信息,否则我认为没有人能够回答您的第二个问题。 sudo -S
绝对是以编程方式向 sudo 提供密码的预期机制。
关于linux - 如何模拟键盘按键(+ 'ALT'键的ASCII码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22262777/