通过捕获系统消息就可以区分系统关机和重启了。一般来说用WndProc 函数中,添加对 WM_QUERYENDSESSION 消息的处理。LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_QUERYENDSESSION: if (lParam == ENDSESSION_LOGOFF || lParam == ENDSESSION_CLOSEAPP) { // 系统正在关机或注销用户 // 处理关机逻辑 } else if (lParam == ENDSESSION_CRITICAL) { // 系统正在重启 // 处理重启逻辑 } // 根据需要处理其他可能的情况 break; // 其他消息处理... } } 然后根据 lParam 参数的值来判断系统的操作类型。其中,ENDSESSION_LOGOFF 表示用户注销操作,ENDSESSION_CLOSEAPP 表示系统关闭应用程序,而 ENDSESSION_CRITICAL 表示系统即将重启。这样就可以对VC++ 的窗口应用程序进行判断了。
通过捕获系统消息就可以区分系统关机和重启了。
一般来说用WndProc 函数中,添加对 WM_QUERYENDSESSION 消息的处理。
然后根据 lParam 参数的值来判断系统的操作类型。其中,ENDSESSION_LOGOFF 表示用户注销操作,ENDSESSION_CLOSEAPP 表示系统关闭应用程序,而 ENDSESSION_CRITICAL 表示系统即将重启。这样就可以对VC++ 的窗口应用程序进行判断了。