本文介绍了SetThreadExecutionState不工作从Windows服务调用时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想防止系统进入睡眠/从窗口服务冬眠。
我打电话 SetThreadExecutionState
函数来做到这一点。
但似乎没有任何效果。
我只是想知道Windows服务的函数是否 SetThreadExecutionState
意愿。如果没有什么将是其他方式来表示。
下面是我使用的C#代码。我呼吁它 ONSTART
服务的方法。
函数[DllImport( KERNEL32.DLL,字符集= CharSet.Auto,SetLastError = TRUE)]
静态外部UINT SetThreadExecutionState(EXECUTION_STATE esFlags);
私人无效的KeepAlive()
{
SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS)
}
解决方案
(source)
You need to call this function every now and then. It's not a fire-and-forget.
这篇关于SetThreadExecutionState不工作从Windows服务调用时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!