9. [pywin32] ExitProcess & TerminateProcee 및 관련 함수

pywin32/win32process|2020. 12. 25. 00:25

1. ExitProcess(exitCode)

 

현재 프로세스를 종료시키는 함수입니다.

 

인자로는 exitCode : int가 있습니다.

 

exitCode: 프로세스가 종료될 때 종료 코드를 설정합니다.

 

 

2. TerminateProcess(handle, exitCode)

 

지정된 프로세스를 종료시키는 함수입니다.

 

인자로는 handle : PyHANDLE, exitCode : int 가 있습니다.

 

handle: 종료시킬 프로세스의 핸들값입니다.

 

exitCode: 프로세스가 종료될 때 종료 코드를 설정합니다.

 

 

3. int = GetExitCodeProcess(handle)

 

지정된 프로세스 핸들로 부터 종료 코드를 반환합니다.

 

인자로는 handle : PyHANDLE 가 있습니다.

 

handle: 종료 코드를 가져올 프로세스의 핸들값입니다.

 

 

import win32process
import win32con
import win32api
import win32event

prog = "C:/Users/admin/Documents/notepad.exe"
# 프로그램 경로


pinfo = win32process.STARTUPINFO()

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

win32event.WaitForSingleObject(pHandle[0], 3000)

win32process.TerminateProcess(pHandle[0], 3)

errCode = win32process.GetExitCodeProcess(pHandle[0])

print(f"errCode : {errCode}")

win32process.ExitProcess(5)

이번에는 메모장을 이용해봤습니다. 메모장이 열리기는 3초간 기다린 후 종료시킵니다. 종료 코드는 3으로 설정했고요. 현재 프로세스를 종료시키면서 종료 코드를 5로 설정했지만 이건 프로세스가 종료되면서 프로세스 핸들값을 가져올 수 없어 확인은 못했으나, 제대로 설정 됐을 겁니다.ㅎㅎ

 

 

 

 

 

반응형

댓글()