ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

c#-如何防止Windows OS进入睡眠模式-.Net

2019-10-28 16:15:06  阅读:246  来源: 互联网

标签:sleep-mode windows c


这个问题已经在这里有了答案:            >            Disabling Screen Saver and Power Options in C#                                    1个
使用C#,如何防止Windows操作系统进入睡眠模式?

我知道,我可以关闭睡眠模式,这就是我现在要做的.这个问题是关于在长时间运行程序时防止OS休眠.之后,应再次重新启用进入睡眠模式.

解决方法:

不建议应用程序更改电源设置-这是用户的首选项,应该按照他们认为合适的方式进行操作.应用程序可以通知系统它不需要进入睡眠状态,因为它正在执行不需要用户交互的操作.

此处详细说明了系统将要进入的睡眠标准:https://msdn.microsoft.com/en-us/library/windows/desktop/aa373233(v=vs.85).aspx.该细节说明应用程序可以调用本机函数SetThreadExecutionState,以将可能影响系统应如何决定进入睡眠状态的特定需求通知系统.如果无论缺少用户交互如何都需要显示可见,则应将ES_DISPLAY_REQUIRED参数发送到SetThreadExecutionState.

例如:

public enum EXECUTION_STATE : uint
{
    ES_AWAYMODE_REQUIRED = 0x00000040,
    ES_CONTINUOUS = 0x80000000,
    ES_DISPLAY_REQUIRED = 0x00000002,
}

internal class NativeMethods
{
    [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
}

//...

NativeMethods.SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED);

标签:sleep-mode,windows,c
来源: https://codeday.me/bug/20191028/1953792.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有