john1990_1 Ответов: 1

Как предотвратить спящий режим windows в C#?


Я попытался переместить мышь программно, но это не остановило "прочь от ПК", потому что пользователь не сделал этого движения вместо нажатия клавиши, что может быть проблематично.

Что я уже пробовал:

Я имитирую нажатие клавиши Ctrl, но я хочу переместить мышь на 1 пиксель вправо, а затем на один пиксель влево и заставить компьютер остановить время вдали от компьютера.

Richard MacCutchan

Почему бы просто не сказать пользователю, чтобы он изменил настройки питания?

john1990_1

Идея программы "кофеин" взята из Linux, она не дает ПК спать, не меняя настройки питания всегда.

Вот моя программа и исходный код.

Я попробовал 2 кода для перемещения мыши, мышь переместилась, но компьютер знает, что пользователь этого не делал, поэтому компьютер остается в режиме "прочь".

https://sites.google.com/site/caffeineforwindows/

1 Ответов

Рейтинг:
2

harish85

Вы можете использовать SetThreadExecutionState с ES_SYSTEM_REQUIRED
Примечание: это родной метод.

Более подробную информацию о критериях сна можно найти по ссылке msdn
Системные Критерии Сна (Windows)[^]


john1990_1

Но если компьютер неожиданно выключается или программа неожиданно завершает работу, это остается, и компьютер не спит вечно.

Должно ли это быть аннулировано после использования?

Есть ли способ переместить мышь и заставить компьютер думать, что это сделал пользователь?

harish85

система отбросит установленные флаги, когда поток, который их установил, больше не существует/не убит (нормально или ненормально)