Ard*_*adi 2 linux keyboard-events
我最近了解到,如果我在/dev/tty中写入字符,它将模拟键盘的按键操作。
我想知道是否可以模拟按住某个键或组合键。
我正在寻找的是模拟Alt+Tab在打开的应用程序之间切换。我不是在寻找替代品。我正在练习学习如何模拟键盘上的物理按键。是否可以模拟按键组合(例如Alt+ Tab)?
另外,我怎样才能按Enter?
看起来它不是“\n”或“\r”或“\r\n”或“\n\r”。我寻找密钥的原因Enter是我想在终端中执行“sudo”命令,当它提示输入密码时,我使用/dev/tty来回答,但它似乎是标准输入或标准输出(在 sudo 中使用“-S”选项)不起作用。
我做错了什么吗?是否有一些我应该寻找的库(例如Expect)?或者我想做的事情是不可能的?
我正在使用 C++。我想做的就是尝试模拟键盘上的物理按键。操作系统是Ubuntu 13.04(Raring Ringtail)。(只是作为练习)
但我有两个目标:
我找到了两个解决方案:
但它们都不起作用。我所做的到底是对还是错?
X 不从 读取击键/dev/tty。如果你想在 X 中模拟击键,你\xe2\x80\x99将需要以另一种方式发送它们。如果您\xe2\x80\x99正在编写shell脚本,xdotool是您的朋友;如果您\xe2\x80\x99 正在编写C,那么您\xe2\x80\x99 可能想要使用libxdo,即xdotool 的底层库。如果您\xe2\x80\x99正在寻找更底层的东西,您可能会对XCB Test API感兴趣,xdotool 和 libxdo 都依赖它。
除非您可以提供有关 sudo 体验的更多信息,否则我认为任何人都无法回答您的第二个问题。 sudo -S绝对是以编程方式向 sudo 提供密码的预期机制。