小编典典

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

python

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

谢谢,米哈尔


阅读 268

收藏
2021-01-20

共1个答案

小编典典

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

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

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

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

2021-01-20