Используйте SetThreadExecutionState с приложением, которое еще не предотвращает спящий режим
В Windows 7 и 10 приложение Spotify не предотвращает выключение дисплея или переход системы в спящий режим (по крайней мере, на 3 компьютерах с Windows, которые я использую). Есть ли способ запустить приложение и включить функцию SetThreadExecutionState в этот поток, чтобы предотвратить спящий дисплей во время работы приложения? Или любая другая функция, которая будет достигать этого результата?
В настоящее время я запускаю и закрываю приложение с двумя отдельными файлами.bat, которые изменяют таймеры сна, но это довольно неуклюже, поэтому я бы предпочел подходящее приложение для этого.
1 ответ
Это решение C# не использует функцию SetThreadExecutionState, но вы упомянули, что у вас уже есть файлы.bat для изменения таймеров сна, поэтому вы можете скопировать из них команды здесь. Консольное приложение C#:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var spotify = new Process();
spotify.StartInfo.FileName = "Spotify.exe";
spotify.StartInfo.Arguments = "-v -s -a";
Process.Start("powercfg", "-CHANGE -monitor-timeout-ac 0");
spotify.Start();
spotify.WaitForExit();
var exitCode = spotify.ExitCode;
spotify.Close();
Process.Start("powercfg", "-CHANGE -monitor-timeout-ac 1");
}
}
}
Добавьте больше строк Process.Start для изменения режима гибернации и т. Д.