2016-03-26 24 views
2

私は、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") 

私は、単語の文書を開き、キーストロークを送信してPDFとして保存するプログラムを作成しています。私はそれから画像をエクスポートする別のPDFエディタを開きます。

答えて

0

この目的でPopen.wait()を使用できます。子プロセスが終了するのを待ちます。

+0

ですが、アプリケーションの起動が終了するまでスクリプトは一時停止します。それにキーストロークを送るにはどうすればいいですか? –

関連する問題