Я пытаюсь предотвратить переход ноутбука в спящий режим при открытии программы, я установил спящий режим на 1 минуту и запускаю таймер, установленный на каждые 50 секунд.
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
timer1.Start();
}
[FlagsAttribute]
public enum EXECUTION_STATE : uint
{
ES_AWAYMODE_REQUIRED = 0x00000040,
ES_CONTINUOUS = 0x80000000,
ES_DISPLAY_REQUIRED = 0x00000002,
ES_SYSTEM_REQUIRED = 0x00000001
// Legacy flag, should not be used.
// ES_USER_PRESENT = 0x00000004
}
[DllImport("kernel32.dll", SetLastError = true)]
static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
private void timer1_Tick(object sender, EventArgs e)
{
SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_SYSTEM_REQUIRED);
}
}
При запуске этой программы она ждет 50 секунд, должна активировать функцию и не допустить ее перехода в спящий режим, однако она переходит в спящий режим через ~ 50 секунд после запуска программы.что я делаю не так?