当前位置: 首页 > 面试题库 >

如何使用Popen.communicate(在Linux上)传递击键(ALT + TAB)?

仲孙昊焱
2023-03-14
问题内容

我在Raspberry Pi上以全屏模式打开了两个图像(使用ristretto图像查看器)。当满足某些条件时,我需要通过ALT +
TAB按键组合来显示另一个。我正在尝试使用Popen.communicate,但是我不知道如何通过ALT + TAB这样的组合键。有人有什么想法吗?

我需要的是下面的内容(用工作代码替换“ ALT + TAB”):

s = Popen(['ristretto', '-f', 'my.gif' ,'&'],stdin=PIPE)
if my_condition:
    s.communicate("ALT+TAB")

我听说过SendKeys软件包,但仅适用于Windows。

谢谢,米哈尔


问题答案:

您可能无法完全按照您的问题说-
使用Popen传递击键。您可以将字节发送到stdin已打开的进程中,但是几乎可以肯定没有在其中寻找它们。键盘事件与即将发生的数据不同stdin

该pyautogui库库可以用于此目的,但是。安装完成后,您可以使用完成启动查看器Popen,然后使用

pyautogui.hotkey('alt', 'tab')

将alt +
tab发送到前台应用程序。您可能需要增加一点延迟,以确保ristretto在发送密钥之前已完成启动。有关如何使用它的更多详细信息,请参见pyautogui的键盘文档。



 类似资料:
  • 问题内容: 我怎么能确定 哪个 / / 下面的代码键被按下? 问题答案: 好吧,这仅适用于IE 8,因此无法在所有浏览器中使用。Microsoft实现了确定按下哪个(右/左)键的功能。 我也发现这篇关于浏览器中的按键,按键,按键事件的奇妙文章。

  • 问题内容: 我有一个简单的Python脚本,可以接收用户名和密码作为参数,但是我的密码包含两个感叹号。当我像这样调用脚本时 我之前输入的命令将替换感叹号: 我可以使用反斜杠()避开感叹号,但密码会更改。 是否有解决方案,如何在不更改密码的情况下转义感叹号? 问题答案: 您应该能够简单地在外壳中用单引号引起来。

  • 13.6 Linux 主机上的使用者讯息传递 谈了这么多的帐号问题,总是该要谈一谈,那么如何针对系统上面的使用者进行查询吧? 想几个状态,如果你在 Linux 上面操作时,刚好有其他的使用者也登陆主机,你想要跟他对谈,该如何是好? 你想要知道某个帐号的相关信息,该如何查阅?呼呼!下面我们就来聊一聊~ 13.6.1 查询使用者: w, who, last, lastlog 如何查询一个使用者的相关数

  • 问题内容: 我正在尝试使用selenium进行右键单击,对此有任何想法吗? 问题答案: 我已经尝试过ActionSequence,而且效果很好。 找不到ContextClick函数,应使用click。 因此,应如下所示: 元素是您的Web元素,2表示右键。 要大致模拟JavaScript中的右键单击,请查看JavaScript模拟代码中的右键单击。

  • 我正在尝试使用Actions.sendKeys发送快捷方式,但它不起作用。

  • 问题内容: 我需要稍后再运行一个mail.php文件,而不是让用户在提交register.php时等待发送验证电子邮件。 因此,我选择在1分钟后使用 at 命令在命令行中运行mail.php( 在register.php 中 调用 ): 但是,当我处于at命令的交互模式时,我只能将参数发送到该php文件。 由于我希望这是自动的,因此我需要在运行时使用shell脚本: 但是我找不到传递 {email