3

サブプロセスを使用してデフォルト プログラムでファイルを開き、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 エディターを開いて、そこから画像をエクスポートします。

4

1 に答える 1

0

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

于 2016-03-26T20:46:05.313 に答える