我试图在允许显示器关机的同时保持系统开启,以便在系统无人看管时完成下载。为实现这一点,我打电话给:
SetThreadExecutionState(ES_SYSTEM_REQUIRED);
每当我从下载中获取数据时。但是,这似乎也可以防止显示器掉电(显示器按照其配置的调光定时器调暗,但永远不会完全关闭)。根据{{3}},只有在我通过ES_DISPLAY_REQUIRED
时才会发生这种情况 - 为什么它会被阻止?
请注意,当我停止呼叫SetThreadExecutionState
时,显示屏不会再次开始关机;我必须终止程序以允许显示关闭。但是,如果使用ES_CONTINUOUS
调用它不应该只有持久效果吗?
我正在使用Windows 7,如果重要的话。我目前无法在其他版本上进行测试......
答案 0 :(得分:1)
如果在没有ES_CONTINUOUS的情况下调用此函数,它将不会继续计算系统和监视器的空闲计时器。所以你必须通过ES_CONTINUOUS组合传递参数。例如你可以打电话 SetThreadExecutionState(ES_SYSTEM_REQUIRED | ES_CONTINUOUS); 代替 SetThreadExecutionState(ES_SYSTEM_REQUIRED);
答案 1 :(得分:0)
没关系 - 看来the bug不在我的代码中:)