2017-10-02 12 views
2

私は複数のアプリケーションのハンドリングを自動化しようとしています。 最初のアプリケーションからseccondアプリケーションを開くことができます。私はそれをopperateできるようにするために第2のウィンドウを選択する必要があります。 私は現在これを行うことができますが、所要時間は2秒からほぼ1分までです。私は複数の要因がこれに影響を与えることを知っています。同時に実行する他のプログラムもそうです。まだ私は、より効率的なコードを使用することで、必要な時間を短縮できると思います。pywinautoを使用してウィンドウを見つけるのに時間がかかります

私は現在、次の操作を行います。私はタイトルが、何か他のものを探していない場合

app = pywinauto.application.Application(backend="uia") 
app.connect(path="Document-I-wish-to-find.exe") 
mywindows = pywinauto.findwindows.find_windows(title_re=".*Firstpartofwindowname ") 
app = pywinauto.application.Application().connect(handle=mywindows[0]) 

はそれが速くますか? これと同じ結果を得るために使用できる方法がもう1つありますか?

+0

どの回線に時間がかかりますか? –

+0

コードの3行目。残りは本当に速く動作します。 – Gyula

+0

低レベルの機能です。直接使用することはお勧めしません。 top_level_only = Trueを追加すると、通常はさまざまなレベルで異なる方法で呼び出されるため、はるかに高速になります。 –

答えて

3

速度を上げるには、class_nameキーワードを使用します。 1つのWin32関数呼び出しでclass_nameを取得できるため、テキストを取得する際に別のプロセスに2つのウィンドウメッセージを送信する必要があります。もちろん、pywinautoフィルターはclass_nameで処理します。

関連する問題