Calarence 2022-05-07 14:09 采纳率: 0%
浏览 48

WIN10电源键关机如何不显示立即结束窗口

问题遇到的现象和发生背景

系统运行时,仅运行一个应用程序A,当用户按下电脑的电源键时(已设置为关机且启用了“关闭会阻止或取消关机的应用程序的自动终止功能”),应用程序A通过nativeEventFilter()接收到关机信号:WM_QUERYENDSESSION,弹出应用程序A的提示窗口,询问是否进行关机。如果用户点击关机,则进行关机。然而,按下电源键后,Win10系统出现了立即结束应用程序A的弹窗,目前的处理措施是在立即结束弹窗出现后,给该窗口发关闭消息立即关闭该 弹窗,但是却能够肉眼看见这个过程,体验不好,有什么好的办法可以截获相关的API不进行弹窗。

问题相关代码,请勿粘贴截图

if (eventType == "windows_generic_MSG" || eventType == "windows_dispatcher_MSG")
{
MSG *pMsg = reinterpret_cast<MSG*>(message);

    if (pMsg->message == WM_QUERYENDSESSION)
    {
        std::thread closeWindowThread([this]() {
            while (true) {
                std::wstring name(L"结束程序 - 应用程序A");
                HWND handle = FindWindow(nullptr, name.c_str());
                if (handle) {
                    SendMessage(handle, WM_CLOSE, 0, 0);
                    return;
                }
                std::this_thread::sleep_for(std::chrono::milliseconds(50));
            }
        });
        int res = CMsgBoxView::showMsgBox(EMSGTYPE::MSG_NORMAL_TIP, tr("A is running, really shut down?"));
        if (res == CMsgBoxView::EMSGBUTTON::E_CANCEL_BTN)
        {
            closeWindowThread.detach();

            return true;
        }
        else {
            closeWindowThread.detach();
            
            return false;
        }
    }
    
}
return  QWidget::nativeEvent(eventType, message, result);
运行结果及报错内容

应用程序A的关机阻止界面显示后,用户点击确定,Win10系统出现了“立即结束”应用程序A的弹窗,
目前是在弹窗出现后,立即关闭该 弹窗,但是却能够肉眼看见这个过程

我的解答思路和尝试过的方法

进过分析立即结束窗口是CSRSS.exe产生的。

我想要达到的结果

电源键关机时,不弹出系统的立即结束窗口。

  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-07 14:38
    关注

    那你直接执行shutdown -h 0,立即关机,不就得了,别管什么弹窗不弹窗的

    评论

报告相同问题?

问题事件

  • 修改了问题 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档