윈도우7에 추가된 기능 중 위 그림과 같이 종료 시점에서 이미 실행 중인 프로그램들을 나타내는 화면이 있다.
이전 XP 에서는 종료를 하면 아래와 화면과 같이 한 프로그램씩 "지금 끝내기" 를 눌러줘야 했었지만
윈도우7 에서는 "강제 종료" 한번의 클릭으로 모두 종료할 수 있게 된 것이다.
아래의 메세지는 위와 같은 상황에서의 메모장의 메세지를 로깅한 것인데 위와 같은 종료시점에서 운영체제가 보낸 메세지가 초반에 나오는 것을 볼 수 있다. 혹여나 WM_CLOSE 같은 것을 보내지 않을까 생각했는데 WM_QUERYENDSESSION 을 보내고 있음을 알 수 있다.
생각에는 뭔가 특별한 화면이라 생각해서 약간 분석을 해보았다.
위 화면은 해당 화면을 반토막 내서 살펴본 것이다.
해당 화면을 구현하고 있는 프로세스는 csrss.exe 이고 다이얼로그로 만든 화면임을 알 수 있다.
특별히 다이얼로그 사이에 BlockedShutdownResolver 라는 클래스 이름을 가진 윈도우도 존재함을 알 수 있다.
그리고 특별한 컨트롤이 있는 것이 아니라 static 과 scrollbar, button 으로 이루어진 화면이었다.
그래서 마우스에 반응하는 컨트롤이 스크롤바와 버튼 뿐이다.
흠.. 더 이상 적을게.. 없다..