2017-10-02 42 views
2

여러 응용 프로그램의 핸들링을 자동화하려고합니다. 첫 번째 응용 프로그램에서 seccond 응용 프로그램을 열 수 있습니다. 나는 두 번째 창을 선택하여 그것을 opperate 할 수 있어야합니다. 현재이 작업을 수행 할 수 있지만 필요한 시간은 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]) 

내가 제목하지만 다른 뭔가를 검색하지 않는 경우 더 빨리인가 :

나는 현재이 작업을 수행? 다른 결과를 얻을 수있는 다른 방법이 있습니까?

+0

어느 라인이 오래 걸리나요? –

+0

코드의 3 번째 줄. 나머지는 정말 빠르게 작동합니다. – Gyula

+0

우리가 직접 사용하지 않는 낮은 수준의 기능입니다. top_level_only = True를 추가하면 다양한 레벨에서 일반적으로 다른 방식으로 불리는 것처럼 훨씬 빠릅니다. –

답변

3

속도를 높이려면 class_name 키워드를 사용하십시오. class_name은 1 개의 Win32 함수 호출로 얻을 수 있기 때문에 텍스트를 가져 오는 동안 2 개의 창 메시지를 다른 프로세스로 보내야하므로 더 빠릅니다. 물론 pywinauto 필터는 class_name에 의해 처리됩니다.