Windows에서 시스템을 종료하기 위해서 사용되는 매서드이다. 네이버 자료실이나 이런데보면 타이머를 이용하여 시스템 자동 종료하는 프로그램들을 많이 보았을 건데, 그런 애플리케이션에서 주로 사용한다고 보면 되겠다. 물론, 작업표시줄에 넣어서 항상 실행하려면 몇가지 기능을 더 배워야 하지만.. 그조차도 어렵지않게 만들수 있다.
해당 API원형은 다음과 같다.
BOOL ExitWindowsEx(
[in] UINT uFlags,
[in] DWORD dwReason
);
파라메터 설명
1. uFlags
종료방식을 나타내는 플래그로, 최소 하나의 값을 포함해야 한다.
설정 값 | 의미 |
EWX_HYBRID_SHUTDOWN 0x00400000 |
EWX_SHUTDOWN 플래그와 결합하여 다음에 더 빠른시작을 준비(Win8 이상) |
EWX_LOGOFF 0 |
로그온 세션에서 실행중인 모든 프로세스를 종료 |
EWX_POWEROFF 0x00000008 |
시스템을 종료하고 전원을 끔(전원 끄기 기능을 지원해야함) |
EWX_REBOOT 0x00000002 |
시스템을 종료한다음 다시 시작(리부팅) |
EWX_RESTARTAPPS 0x00000040 |
시스템을 종료한다음 다시시작하도록 등록된 모든 프로그램을 다시시작. |
EWX_SHUTDOWN 0x00000001 |
시스템을 종료하지만 전원을 끄지 않음 |
선택적으로 사용할 수 있는 옵션
설정 값 | 의미 |
EWX_FORCE 0x00000004 |
시스템 강제종료기능으로 데이터손실 가능성이 있어 비상시만 사용 |
EWX_FORCEIFHUNG 0x00000010 |
제한시간내에 응답하지 않은 프로세스를 강제종료 |
2. dwReason
종료의 이유를 지정하는 파라메터로 이 변수가 0이면 정의되지 않은(계획되지 않은)종료로 처리된다. 종료 이유에 대한 코드는 아래의 링크에서 확인가능하다.
https://docs.microsoft.com/en-us/windows/desktop/Shutdown/system-shutdown-reason-codes
더 자세한 내용이 궁금하다면, 아래의 링크를 참조한다.
https://docs.microsoft.com/ko-kr/windows/win32/api/winuser/nf-winuser-exitwindowsex?redirectedfrom=MSDN
반응형
최근댓글