这个问题已经在这里有了答案: Disabling Screen Saver and Power Options in C# 1个使用C#,如何防止Windows操作系统进入睡眠模式?我知道,我可以关闭...
这个问题已经在这里有了答案: > 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);
本文标题为:c#-如何防止Windows OS进入睡眠模式-.Net
基础教程推荐
- 解答“60k”大佬的19道C#面试题(上) 2023-02-25
- C#实现动态执行字符串脚本(优化版)的示例代码 2023-07-18
- Unity实现移动物体到鼠标点击位置 2023-03-09
- C#基础教程之类class与结构struct的区别 2023-07-05
- Unity3D实现打砖块游戏 2023-06-08
- C#-Windows Phone的系统服务 2023-11-27
- Unity3D使用陀螺仪控制节点旋转 2023-02-02
- C#中多线程ManualResetEvent 与 AutoResetEvent 区别 2023-03-04
- Unity实现文本转贴图 2023-04-15
- C# 9.0 新特性之模式匹配简化的实现 2023-03-04