Написал программу, которая должна работать круглосуточно, поставил ее на ноутбук.
Как она работет:
Есть рассписание и если в определенные промежутки времени срабатывает условие, то программа выполняет определенные действия, иначе если это не тот промежуток времени или если условие не срабатывает, то программа просто крутит зацикленное видео. Так вот, если долго не срабатывет условие, то даже не смотря на то, что видео идет, компьютер переходит в спящий режим.
Пробовал через powercfg.cpl, поставил "Отключать дисплей" и "Переводить компьютер в спящий режим" на НИКОГДА, но не помогло.
Скажите пожалуйста, как это можно поправить?
Вот тут перечислены следующие варианты:
DisplayRequest
метод RequestActive
Воспользоваться WinAPI SetThreadExecutionState
и вызвать как-то так(сорс):
// Set new state to prevent system sleep
fPreviousExecutionState = NativeMethods.SetThreadExecutionState(
NativeMethods.ES_CONTINUOUS | NativeMethods.ES_SYSTEM_REQUIRED);
internal static class NativeMethods
{
// Import SetThreadExecutionState Win32 API and necessary flags
[DllImport("kernel32.dll")]
public static extern uint SetThreadExecutionState(uint esFlags);
public const uint ES_CONTINUOUS = 0x80000000;
public const uint ES_SYSTEM_REQUIRED = 0x00000001;
}
Слушать WM_POWERBROADCAST
сообщение. (Сорс EnSO)
protected override void WndProc(ref System.Windows.Forms.Message m)
{
// Power status event triggered
if(m.Msg == (int)WindowMessage.WM_POWERBROADCAST)
{
// Machine is trying to enter suspended state
if(m.WParam.ToInt32() == (int)WindowMessage.PBT_APMQUERYSUSPEND ||
m.WParam.ToInt32() == (int)WindowMessage.PBT_APMQUERYSTANDBY)
{
// Have perms to deny this message?
if((m.LParam.ToInt32() & 0x1) != 0)
{
// If so, deny broadcast message
m.Result = new IntPtr((int)WindowMessage.BROADCAST_QUERY_DENY);
}
}
return;
}
base.WndProc(ref m);
}
}
internal enum WindowMessage
{
/// <summary>
/// Notify that machine power state is changing
/// </summary>
WM_POWERBROADCAST = 0x218,
/// <summary>
/// Message indicating that machine is trying to enter suspended state
/// </summary>
PBT_APMQUERYSUSPEND = 0x0,
PBT_APMQUERYSTANDBY = 0x0001,
/// <summary>
/// Message to deny broadcast query
/// </summary>
BROADCAST_QUERY_DENY = 0x424D5144
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как правильно осуществить перегрузку и использовать в дальнейшем данный логический оператор «!»Если сравнивается следующие: если заданная...
есть такой код, который должен рассчитывать по данным стоимость домана сайте это выглядит как два селекта и поле для ввода метража
Нашел простой гайд как сделать админпанель с возможностью постинга и редактирования постовСделал всё как в видео, но добавление и редактирование...