Как в C# считать значения таймера, по которому ОС переключает комп в спящий режим? Может какой-то WMI класс это позволяет? Надо, чтобы до засыпания компа успеть сделать ряд действий из приложения. Когда сработал event - мне уже поздно... Надо за 1 минуту до срабатывания таймера выполнить ряд операций...
Либо второй вариант: не допустить включения спящего режима. М.б. в WMI есть доступ к параметру управления электропитанием. Я бы из своего приложения устанавливал в нем "Никогда", для того, чтоб пользователь при использовании моего приложения не мог назначать режим энергосбережения.
Используйте SystemEvents.
Подпишитесь на событие PowerModeChanged и в его обработчике выполняйте нужные действия.
static void Main(string[] args)
{
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
Console.ReadLine();
}
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
if (e.Mode == PowerModes.Suspend)
Console.WriteLine("sleep");
else
Console.WriteLine("awake");
}
Я только что опробовал этот код в консольном приложении. Работает.
Надо за 1 минуту до срабатывания таймера выполнить ряд операций
С помощью функции GetLastInputInfo определяете, когда система находится в состоянии простоя. И запускаете свой таймер с интервалом срабатывания на минуту меньше, чем время до перехода в спящий режим.
Единственная проблема: с ходу я не нашёл, как узнать это время до перехода в спящий режим.
Нашёл. Поверил. Работает (типа Veni, Vidi, Vici
Сначала введу в курс дела(Значения переменных не имеют смысла, так проще для понимания)
С какой частотой будет обновляться метод в юнити, если его не вывести в FixedUpdate() и Update()
Я пытаюсь получить изображение из postgresql с помощью C #
Изначально, я шёл сюда за ответом на вопрос "NET 5 не видит SqlConnection"