У меня есть система, которая запускает полноэкранную программу (на основе love2d) в течение длительных периодов времени. Я хотел бы иметь возможность перевести монитор в режим энергосбережения после определенного периода бездействия. Обычно я ожидаю, что Windows сделает это для меня, но пока эта программа работает, она не будет. Насколько я могу судить, программа не устанавливает никаких запросов, связанных с энергосбережением, скажем, VLC делает - powercfg -requests
и powercfg -requestsoverride
ничего не показывает в DISPLAY. Подразумевается, что Windows не выключит монитор, если запущена полноэкранная программа.
Существует много литературы о том, как это сделать, изменив задержку перед выключением дисплея на очень короткое, но поскольку окна не выключают дисплей самостоятельно, это не помогает. Другой ответ предложил nircmd, но он просто выходит, ничего не делая; при запуске от имени обычного пользователя он выходит с кодом 216, а при запуске от имени администратора - с кодом 0, но в любом случае ничего не происходит.
Я хорошо пишу небольшую программу на C или C # для достижения этой цели, хотя в идеале я хотел бы сделать это с помощью существующих инструментов.