通过捕获系统消息就可以区分系统关机和重启了。
一般来说用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://www.wmzos.com/?id=67

如果有帮助到您,打赏一下作者吧~
添加新评论