通过捕获系统消息就可以区分系统关机和重启了。
一般来说用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++ 的窗口应用程序进行判断了。
本篇文章链接 地址:https://wmzos.com/?id=67
添加新评论