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模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

相关内容

热门资讯

不低于30%!商业用房购房贷款... 1月17日,中国人民银行、国家金融监督管理总局发布关于调整商业用房购房贷款最低首付款比例政策的通知,...
商道创投网·会员动态|星融元·... 《商道创投网》2026年1月17日从官方获悉:星融元数据技术有限公司(Asterfusion)近日完...
原创 美... 近日,海关发布了中国2025年的进出口情况。 而关注芯片产业的人发现,2025年,中国出口芯片数量3...
爆款刚诞生,德邦基金为何急下“... 来源:市场资讯 作者 |郑理 来源 | 独角金融 2026年的公募市场,被一只名不见经传的AI应用...
欧陆之星钻石被出具警示函,涉未... 蓝鲸新闻1月17日讯,近日,江苏证监局发布行政监管措施决定书,剑指欧陆之星钻石(上海)有限公司。 决...
木林森涨1.76%,成交额4.... 来源:新浪证券-红岸工作室 1月16日,木林森涨1.76%,成交额4.35亿元,换手率4.20%,总...
金一文化跌3.63%,成交额2... 来源:新浪证券-红岸工作室 1月16日,金一文化跌3.63%,成交额2.04亿元,换手率2.38%,...
险资系私募基金总数量增至11只 险资长期股票投资试点正加速落地。中国证券投资基金业协会信息显示,国丰兴华鸿鹄志远三期私募证券投资基金...
邹加怡出任亚洲基础设施投资银行... 央广网北京1月16日消息(记者 宓迪)据“亚洲基础设施投资银行”微信公众号,今日,邹加怡正式就任亚洲...
汉德精密:向外走、向深拓 抢占... 全球产业分工重构之际,中国装备制造企业出海已从“规模扩张”迈入“提质增效”新阶段,而产业链协同共生成...
中央财政加力支持 民间专项担保... 围绕支持民间投资,日前召开的2026年首场国务院常务会议提出设立“民间投资专项担保计划”,这意味着我...
我们该如何应对“难治性双相情感... “前一秒还情绪高涨、斗志昂扬,下一秒就陷入低谷、悲观绝望”——这不是简单的“心情不好”,而是双相情感...
和讯投顾刘文博:指数高开低走,... 1月16日,和讯投顾刘文博表示,今早A股高开回应,但因整体调整尚不充分,市场合力未能持续,指数最终回...
80多家央企“一把手”2024... 本报(chinatimes.net.cn)记者刘昱汝 徐芸茜 北京报道 日前,国资委官网通过集中发布...
2026义乌电商博览会·跨境服... 在全球数字经济浪潮下,中国电商服务生态凭借完善的产业链协同与持续创新的技术能力,正成为推动跨境贸易增...
罗永浩需要为西贝预制菜风波担责... 16日下午,贾国龙更新微博称:“今晚(16日)10点将就罗永浩对西贝的重大污蔑诽谤一一全面回应”,并...
融资余额破新高,看懂资金才靠谱 最近A股融资余额持续攀升,创下历史新高,不少板块和个股都获得了融资资金的重点关注。分板块来看,电子、...
母婴APP用户粘性对比:强关系... 概述 母婴类移动应用在用户定位、业务模式与生态重心方面存在差异。以妈妈网、宝宝树和亲宝宝为例,三者分...
继蓝箭航天后,又一个商业航天企... 日前,证监会公开发行辅导公示系统显示,中科宇航技术股份有限公司(以下简称为“中科宇航”)于近日完成I...
爱科微启动A股上市辅导 来源:界面新闻 1月17日,证监会网站披露,爱科微科技(上海)股份有限公司已启动A股上市辅导,辅导机...