0

我试图让系统保持开启,同时让显示器关闭,以便在系统无人看管的情况下完成下载。为了实现这一点,我呼吁:

SetThreadExecutionState(ES_SYSTEM_REQUIRED);

每当我从下载中获取数据时。但是,这似乎也可以防止显示器断电(显示器根据其配置的调光计时器变暗,但永远不会完全关闭)。根据MSDN 条目,只有当我也通过时才会发生这种情况ES_DISPLAY_REQUIRED- 为什么它仍然被阻止?

请注意,当我停止呼叫时SetThreadExecutionState,显示器不会再次开始断电;我必须终止程序才能关闭显示器。但是,如果用 调用它不应该只有持久效果ES_CONTINUOUS吗?

如果重要的话,我正在使用 Windows 7。我目前无法在其他版本上进行测试...

4

2 回答 2

1

如果你在没有 ES_CONTINUOUS 的情况下调用这个函数,它将不会继续为系统和监视器计算空闲计时器。所以你必须通过 ES_CONTINUOUS 组合传递参数。例如,您可以调用 SetThreadExecutionState(ES_SYSTEM_REQUIRED | ES_CONTINUOUS); 而不是 SetThreadExecutionState(ES_SYSTEM_REQUIRED);

于 2010-07-31T22:27:16.903 回答
0

没关系 - 看来这个错误不在我的代码中:)

于 2009-10-17T04:38:32.587 回答