Как передать нажатие клавиши (ALT+TAB) с помощью Popen.communicate (в Linux)?
У меня есть два изображения, открытых в полноэкранном режиме на моем 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...
Спасибо михал
1 ответ
Вы, вероятно, не можете сделать именно то, что говорит ваш вопрос - нажимать клавиши с помощью Popen. Вы можете отправить байты на stdin
процесса, который вы открыли, но он почти наверняка их там не ищет. События клавиатуры отличаются от поступающих данных stdin
,
Однако библиотека pyautogui может быть полезна для этой цели. После установки вы можете запустить программу просмотра с Popen
, как вы сделали, а затем использовать
pyautogui.hotkey('alt', 'tab')
Отправить alt+tab на передний план приложения. Возможно, вам придется добавить небольшую задержку, чтобы убедиться, что ристретто закончил запуск перед отправкой ключей. См. Документацию клавиатуры pyautogui для более подробной информации о том, как ее использовать.