关闭

C++, Qt Windows关机的时候,阻止其关机或这注销 做其它业务的解决方法

标签: QtC++windows阻止关
603人阅读 评论(1) 收藏 举报
分类:

代码网上一搜一堆,截获WM_ENDSESSION和WM_QUERYENDSESSION消息,但是自己试了下,还是会正常关机,无法出现阻止的效果。
需要修改注册表HKEY_CURRENT_USER,下的Control Panel\Desktop里的WaitToKillAppTimeout、AutoEndTasks和HungAppTimeout得值,
修改方式如下:
RegOpenKey(HKEY_CURRENT_USER,”Control Panel\Desktop”,&_regkey);
RegSetValueEx(_regkey, “WaitToKillAppTimeout”, 0, REG_SZ, (const BYTE*)”120000”, 6);
RegSetValueEx(_regkey, “AutoEndTasks”, 0, REG_SZ, (const BYTE*)”0”, 6);
RegSetValueEx(_regkey, “HungAppTimeout”, 0, REG_SZ, (const BYTE*)”120000”, 6);
RegCloseKey(_regkey);
挂起3个多小时,超时3个多小时,这样再关机运行程序,就会出现提示阻止关机或注销的警告。

//Qt的话,先把注册标的值给该了,然后连接commitDataRequest(QSessionManager&)信号,
在关机的时候,处理一些自己的业务,如果在超时时间内的也会弹出阻止关机/注销的提示。

在main函数中连接消息
QObject::connect(&a, SIGNAL(commitDataRequest(QSessionManager&)), &w, SLOT(showExitSystemInfo(QSessionManager&)));

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3927次
    • 积分:70
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论