Запретить системе переходить в спящий режим или выключать дисплей во время работы приложения

#delphi #delphi-xe

#delphi #delphi-xe

Вопрос:

Я использую Delphi XE Rio в Windows 8.1, моя цель — предотвратить переход системы в спящий режим и выключение монитора.

Я пробовал это, но не получилось.

http://delphidabbler.com/tips/127

Я использую это

 SystemCritical.IsCritical = true;
try
  // do critical operation here
  // without going in to sleep or turning off the display
finally
  SystemCritical.IsCritical = false;
end;
  

Мой компьютер просто все еще выключает монитор, а затем переходит в спящий режим.

Комментарии:

1. Просматривая документы, возможно, необходим ES_DISPLAY_REQUIRED?

2. Вы имеете в виду раздел ES_DISPLAY_REQUIRED = $00000002; в const ?

3. Я должен был выразиться яснее; я имею в виду вызов SetThreadExecutionState, т. Е., возможно, это должно быть так: SetThreadExecutionState(ES_SYSTEM_REQUIRED или ES_DISPLAY_REQUIRED или ES_CONTINUOUS)

4. Замечательно. Большое вам спасибо. Теперь я знаю, что для остановки выключения монитора требуется отображение. Затем ES_USER_PRESENT информирует систему о присутствии пользователя. Если присутствует пользователь, система будет использовать параметры политики питания, установленные пользователем. В противном случае система не будет пробуждать устройство отображения и вернется в спящее состояние как можно скорее.