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

发布于 2021-01-29 15:04:42

我在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。

谢谢,米哈尔

关注者
0
被浏览
54
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看