C++Qt开发——阻止系统休眠方法
admin
2024-01-25 14:50:31
0

1. Windows下阻止系统休眠

有的程序在运行过程中需要阻止系统休眠以保证正常地工作,比如常见的迅雷,在Qt开发中实现这样的效果只需要增加一行代码即可。

在main函数中增加如下代码:

SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);

这样程序启动后就会阻止系统休眠和息屏。

2. MacOs 下阻止系统休眠

实现‘App防睡眠’功能 :打开Mac App时,不进入睡眠模式!

头文件:#import

如果上面这个头文件不行的话用这个 :#include

实现代码如下:

#import  
​
// kIOPMAssertionTypeNoDisplaySleep防止显示休眠,
// kIOPMAssertionTypeNoldleSleep防止空闲休眠// reasonForActivity是系统在需要时使用的描述性字符串
// 告诉用户系统没有休眠的原因。例如,
// "Mail Compacting Mailboxes" 是一个有用的字符串// 注意:IOPMAssertionCreateWithName将字符串限制为128个字符。
​
CFStringRef reasonForActivity = CFSTR("Describle Activity Type");
​
IOPMAssertionID assertionID;
IOReturn success = IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep, kIOPMAssertionLevelOn, reasonForActivity, &assertionID);
if (success == kIOReturnSuccess) 
{// 添加你不需要做的工作// 系统在这里休眠。//success = IOPMAssertionRelease(assertionID);// 系统将能够再次休眠。
}
​

CSDN QT大纲:Qt开发必备技术栈学习路线和资料

(1). 新旧IPA

废弃的IPA:IOPMAssertionCreate(<#CFStringRef AssertionType#>, <#IOPMAssertionLevel AssertionLevel#>, <#IOPMAssertionID *AssertionID#>) 使用提示信息:'IOPMAssertionCreate' is deprecated: first deprecated in macOS 10.6 新的IPA:IOPMAssertionCreateWithName是Mac OS X 10.6雪豹中可用的新API。 IOPMAssertionCreateWithName允许应用程序返回一个简短的字符串给用户,解释为什么该应用程序阻止了睡眠。

(2). 关于AssertionType参数 —— kIOPMAssertionType... 用kIOPMAssertionTypeNoDisplaySleep 防止显示器睡眠(会防止系统睡眠); 用kIOPMAssertionTypeNoIdleSleep 防止系统睡眠(显示器会睡眠)。

测试结果是: 测试系统: Mac OS X 10.9.5 用kIOPMAssertionTypeNoDisplaySleep 既能防止显示器睡眠又能防止系统睡眠,就像放视频或做幻灯片一样。

3. 获取 Windows系统使用的语言

QString g_LocaleLanguage()//获取系统语言
{QString strLanguage = "en";//默认语言是英文if( QLocale::Chinese == QLocale::system().language() ){strLanguage = "zh";}else if( QLocale::Japanese == QLocale::system().language() ){strLanguage = "jp";}else if( QLocale::German == QLocale::system().language() ){strLanguage = "de";}return strLanguage;
}

4. 获取 MacOs 系统使用的语言

void MacGetSystemLanguage(char *array)//获取Mac系统语言
{NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];//取得用户默认信息NSArray *languages = [defaults objectForKey:@"AppleLanguages"];//取得Mac系统下支持的所有语言设置NSLog(@"当前Mac系统支持的语言:%@",languages);NSString *currentLanguage = [languages objectAtIndex:0];//获取当前Mac系统使用的语言NSLog(@"当前Mac系统使用的语言:%@",currentLanguage);int iLen = [currentLanguage length];memcpy(array, [currentLanguage UTF8String], iLen);
}
​
QString g_LocaleLanguage()
{char array[128];memset(array, 0, 128);MacGetSystemLanguage(array);//获取Mac系统语言qDebug()<<"array = "<

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

相关内容

热门资讯

原创 还... 头条号墨山看客 首发呈现 大好河山,邀您共看 Hello,大家好呀!欢迎来到老墨聊时事, 6月18日...
商道创投网・会员动态|Mani... 《商道创投网》2026 年 06 月 21 日从官方获悉:Manifold AI 流形空间近日完成数...
原创 歌... 文|嘴嘴 编辑|嘴嘴 很多人第一次认识李琼,都是通过那首传遍大江南北的《山路十八弯》。旋律一响起,...
明天,深交所史上最大规模IPO... 根据目前安排,下周将有2只新股可申购:一只为避雷器、绝缘子“小巨人”,另一只为国内领先的新能源发电运...
一财社论:织牢降落伞打好AI淘... AI发展又迎来一个新的历史节点。 当前市场正在走出单纯基于“模型参数”的攻坚战,进入基于真实ROI(...
原创 游... 美国财政部刚公布了最新数据,咱们中国4月份又减持了12亿美元美债,持仓直接掉到了 6511亿美元。什...
明日申购!深交所史上最大规模I... 【大河财立方消息】华润新能源控股有限公司(简称:华润新能源)6月18日发布的公告显示,华润新能源A股...
高盛最新预测:大幅下调黄金价格 当地时间6月19日,国际金价再次收跌,截至发稿,COMEX黄金下跌1.72%,报4172.9美元/盎...
SpaceX行情降温两连跌 本... 来源:环球市场播报 受上周创纪录IPO后本轮股价上涨行情降温影响,SpaceX股票周四美股收盘下跌3...
台青看好粤港澳大湾区发展 刘玥晴 郑欣怡 “同心筑梦·青聚香江”海峡两岸暨港澳青年融合发展主题交流活动近日在香港举办。与会台湾...
小腿溃疡最佳治疗方案指南 小腿溃疡是临床常见的迁延难愈性创面,首先需要明确病因分型才能针对性治疗,不要盲目自行涂药或使用偏方,...
603986,存储芯片大牛股,... 【导读】下周A股将有49家公司有限售股份解禁 中国基金报记者 夏天 Wind数据显示,下周(6月22...
山东万福河被指遭污染近10公里... 一名环保博主6月21日上午发布现场调查视频称,山东济宁市金乡县万福河遭严重污染,其中部分河段河水黑如...
国产电子陶瓷商闯关港股!潮州三... 图源:图虫创意 来源|时代商业研究院 作者|实习生陈嘉婕、郑琳 编辑|郑琳 2026年6月8日,潮州...
*ST集友:控股股东、实际控制... *ST集友:控股股东、实际控制人拟协议转让部分公司股份 每经AI快讯,*ST集友(SH603429,...
端午假期最后一天 铁路运输迎来... 今天是端午假期最后一天,铁路运输迎来返程客流高峰。记者从国铁集团了解到,全国铁路预计发送旅客1794...
原创 美... 越来越多美国人不再相信美国经济为他们服务。 收入下滑、贫富分化是全球问题,但在美国,这两个问题又...
腰椎不适辨证针灸调理,从根源缓... 不少人长期久坐、弯腰劳作、受凉后都会出现腰椎酸胀、僵硬,严重时弯腰受限、牵扯腿疼麻木,现代多诊断腰肌...
莱伯泰科:公司发展战略立足于内... 证券日报网6月18日讯 ,莱伯泰科在接受调研者提问时表示,公司的发展战略立足于内生增长与外延扩张的双...