2016-03-26 4 views
2

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

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

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

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

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") 

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

ответ

0

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

+0

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

Смежные вопросы