Генерация ожидания открытия приложения

Я использую подпроцесс, чтобы открыть файл с его программой по умолчанию, а затем отправить ему нажатия клавиш, используя библиотеку pyautogui.

Моя проблема в том, что когда вы открываете файл, требуется время, чтобы открыть его в программе по умолчанию, и, конечно, этот период времени различается для разных файлов.

Итак, как я могу создать паузу в своем скрипте, чтобы файл должен был открываться первым, и ему отправлялись нажатия клавиш?

Примечание: функция sleep() — это не то, что я ожидаю. Мне нужна своего рода асинхронизация между запущенным приложением и моим скриптом.

from subprocess import Popen
from sys import argv
from pyautogui import press,hotkey

if len(argv)>0:

    word = Popen(['start',argv[1]],shell=True)
    press("f12")
    press("tab")
    press("right")
    for i in range(5): press("down")
    press("enter")
    hotkey("alt","f4")
    word = None

    pdf = Popen(["C:\Program Files\Nitro\Pro 9\NitroPDF.exe",argv[1]])
    hotkey("ctrl","shift","i")
    press("enter")
    hotkey("alt","f4")

Я создаю программу для открытия документа Word и отправки ему нажатия клавиш, чтобы сохранить его в формате pdf. Затем я открываю другой PDF-редактор, чтобы экспортировать оттуда изображение.


person dishendra mishra    schedule 26.03.2016    source источник


Ответы (1)


Для этой цели вы можете использовать Popen.wait(). Он будет ждать завершения дочернего процесса.

person xiº    schedule 26.03.2016
comment
но он приостановит мой скрипт до тех пор, пока запущенное приложение не будет закрыто. тогда как я могу отправить нажатия клавиш на него? - person dishendra mishra; 26.03.2016