21. [pywin32] WaitForInputIdle 함수

pywin32/win32event|2020. 10. 5. 00:30

int = WaitForInputIdle(hProcess, milliseconds )

 

WaitForInputIdle은 특정 프로세스가 만들어지고 완전히 초기화가 될 때까지 대기하는 함수입니다.

 

인자로는 hProcess : PyHANDLE, milliseconds : int 가 있습니다.

 

hProcess: 프로세스의 핸들값입니다.

 

milliseconds: 정한 시간 만큼만 대기하고, 시간이 지나면 타임 아웃이 발생합니다.

 - win32event.INFINITE: 대기 시간을 무한으로 설정합니다.

 

return 값: 프로세스가 준비가 되었는지 타임 아웃이 일어났는지 알려줍니다.

 - 0: 프로세스 준비 완료

 - win32event.WAIT_TIMEOUT: 타임 아웃

 

 

import win32event
import win32process
import win32con

prog = ".\\notepad.exe"
# 프로그램 경로

pinfo = win32process.STARTUPINFO()

pHandle = win32process.CreateProcess(prog, None, None, None, win32con.FALSE, \
                                     win32con.CREATE_NEW_CONSOLE, None, \
                                     None, pinfo)

x = win32event.WaitForInputIdle(pHandle[0], 1000)

if x == 0:
    print("ready\n")

elif x == win32event.WAIT_TIMEOUT:
    print("time out\n")

 

현재 경로의 메모장을 실행시키는 프로세스를 생성 후 WaitForInputIdle 함수를 통해 1초만 기다립니다. 1초 안에 프로세스가 초기화가 완료된다면, ready가 출력됩니다. 만약 1000 을 더 빠르게 설정한다면, 타임 아웃도 보실 수 있습니다.

 

 

 

 

반응형

댓글()