SetThreadExecutionState не работает при вызове из службы Windows

Я хочу, чтобы система не переходила в спящий режим / гибернацию из службы Windows. Для этого я вызываю функцию SetThreadExecutionState . Но вроде не действует. Я просто хочу знать, подходит ли функция SetThreadExecutionState для служб Windows. Если нет, то какие будут альтернативные способы для этого.

Ниже приведен код C #, который я использую. Я вызываю его по методу обслуживания Onstart .

[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern uint SetThreadExecutionState(EXECUTION_STATE esFlags);
private void KeepAlive() 
{
     SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS)
}
9
задан Prasad 3 May 2011 в 13:35
поделиться