예를 들어 주 창을 닫으면 트레이에 숨겨지는 Win32 응용 프로그램이 있습니다.
사용자가 재부팅하거나 종료 할 때 OS 응용 프로그램이 어떤 식 으로든 닫혔습니다.
이 닫기 이벤트를 올바르게 처리하는 방법은 무엇입니까?
Windows 재부팅/종료와의 상호 작용
답변
이 내용은 MSDN의 Shutting Down에 설명되어 있습니다.
기본적으로 WM_QUERYENDSESSION
또는 WM_ENDSESSION
또는 둘 다를 수신하는 최상위 창이 필요합니다. 이러한 메시지가 도착하면 종료 관련 작업을 수행 할 수 있습니다.
창과 메시지 큐가있는 응용 프로그램은 WM_QUERYENDSESSION 및 WM_ENDSESSION 메시지를 통해 시스템 종료 알림을 수신합니다. 이러한 응용 프로그램은 종료 될 수 있음을 나타 내기 위해 TRUE를 반환해야합니다. 절대적으로 필요한 경우가 아니면 응용 프로그램이 시스템 종료를 막지 않아야합니다. 응용 프로그램은 WM_ENDSESSION을 처리하는 동안 필요한 정리 작업을 수행해야합니다. 저장되지 않은 데이터가있는 응용 프로그램은 데이터를 임시 위치에 저장하고 다음에 응용 프로그램이 시작될 때 데이터를 복원 할 수 있습니다. 응용 프로그램은 데이터 및 상태를 자주 저장하는 것이 좋습니다. 예를 들어, 사용자가 시작한 저장 조작 사이에 자동으로 데이터를 저장하여 시스템 종료시 저장되는 데이터의 양을 줄입니다.
중단 중에 생존 할 수없는 중요한 작업을 수행 중이므로 종료 중 UI를 표시하려면 ShutdownBlockReasonCreate
을 사용할 수 있습니다.
응용 프로그램에서 잠재적 인 시스템 종료를 차단해야하는 경우 ShutdownBlockReasonCreate 함수를 호출 할 수 있습니다. 호출자는 사용자에게 표시 될 이유 문자열을 제공합니다. 이유 문자열은 짧고 명확해야하며 사용자에게 시스템 종료를 계속할지 여부를 결정하는 데 필요한 정보를 제공해야합니다.
이 프로세스는 Vista에서 크게 변경되었습니다. XP를 지원해야하는 경우 XP에서 다르게 작동하는 코드가 필요할 수 있습니다. 해당 항목은 MSDN : Application Shutdown Changes in Windows Vista에서도 다룹니다.
System Shutdown Messages WM_QUERYENDSESSION 및 WM_ENDSESSION을 처리해야합니다.
퇴각하면 프로그램에 SIGTERM 또는 SIGINT가 전송됩니다. 이것을 통해 처리 할 수 있습니다. 참조 : http://www.cplusplus.com/reference/csignal/signal/
void my_handler (int param)
{
// clean up here
}
int main()
{
signal(SIGINT my_handler); // try also SIGTERM
}
- 1. Windows 서비스 상호 작용
- 2. Windows Media Player와 상호 작용
- 3. Windows 8 앱 상호 작용
- 4. 상호 작용 서비스와 상호 작용 요청 객체
- 5. 상호 작용
- 6. 상호 작용
- 7. 상호 작용
- 8. 상호 작용
- 9. 상호 작용
- 10. 상호 작용
- 11. 마우스 상호 작용
- 12. iPod 상호 작용
- 13. 외부 프로그램과의 상호 작용
- 14. ASP.NET에서 Windows 실행 파일과 상호 작용 하시겠습니까?
- 15. JavaScript와 Windows Forms 간의 상호 작용
- 16. Java를 사용하여 Windows OS와 상호 작용
- 17. 기존 Windows Media Player와의 상호 작용
- 18. Windows Phone 8 SIM 상호 작용
- 19. 다른 클래스의 Windows 컨트롤과 상호 작용 C#
- 20. 명령 기반 컴파일러로 Windows 메시지와 상호 작용
- 21. 사용자 상호 작용 시뮬레이션
- 22. 양식 간의 상호 작용
- 23. GridView와의 올바른 상호 작용
- 24. quickbooks 온라인 상호 작용
- 25. 블루투스와 컴퓨터 사이의 상호 작용
- 26. 리눅스에서 키보드와 마우스가 상호 작용
- 27. MVVMCross 상호 작용 요청 객체를 사용하는 사용자 상호 작용 패턴?
- 28. 휴먼 컴퓨터 상호 작용 대 상호 작용 디자인
- 29. 프로그래밍 방식으로 Windows와 상호 작용
- 30. jQuery와의 PDF 상호 작용
당신이 종료를 처리 하시겠습니까, 또는 시스템 트레이 아이콘으로 응용 프로그램 숨기기를 하시겠습니까? – Ajay