Временно измените настройки энергопотребления, не меняя план электропитания в Windows 7
Я не особенно люблю функции управления энергопотреблением Windows 7.
Я думаю, что это действительно громоздко, поскольку мне кажется, что мне нужно изменить текущий план, чтобы что-то сделать. И иногда я не хочу менять план - иногда я просто хочу дать команду компьютеру сделать все, что он делает, просто не спать автоматически, потому что я что-то скачиваю.
Но, кажется, каждый раз, когда я хочу это сделать, меня заставляют проходить через несколько разных экранов и опций, и затем я должен не забыть сбросить их потом.
Есть ли способ просто временно переопределить параметры в моем плане с помощью таких параметров, как кнопка "Не спать"? Или кнопка "Немедленно выключить монитор" или кнопка "Не ложиться спать, когда я закрываю крышку"?
5 ответов
Есть бесплатная программа под названием Insomnia, которая будет держать компьютер в активном состоянии, пока он работает.
http://dlaa.me/blog/post/9901642
Так как ссылка уже изменилась один раз, вот важная часть исходного кода программы, взятая из ссылки выше, так что она может быть воспроизведена, если ссылка когда-либо будет закрыта навсегда.
public partial class Window1 : Window
{
private uint m_previousExecutionState;
public Window1()
{
InitializeComponent();
// Set new state to prevent system sleep (note: still allows screen saver)
m_previousExecutionState = NativeMethods.SetThreadExecutionState(
NativeMethods.ES_CONTINUOUS | NativeMethods.ES_SYSTEM_REQUIRED);
if (0 == m_previousExecutionState)
{
MessageBox.Show("Call to SetThreadExecutionState failed unexpectedly.",
Title, MessageBoxButton.OK, MessageBoxImage.Error);
// No way to recover; fail gracefully
Close();
}
}
protected override void OnClosed(System.EventArgs e)
{
base.OnClosed(e);
// Restore previous state
if (0 == NativeMethods.SetThreadExecutionState(m_previousExecutionState))
{
// No way to recover; already exiting
}
}
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
// Start an instance of the NavigateUri (in a browser window)
Process.Start(((Hyperlink)sender).NavigateUri.ToString());
}
}
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;
}
Мой любимый способ сделать это без какого-либо дополнительного программного обеспечения - использовать встроенный Mobility Center в Windows. Доступ к нему можно быстро получить с помощью сочетания клавиш [Windows key]+[X] в Windows 8:
Затем просто включите режим презентации.
Пока этот конкретный режим включен, компьютер не выключит экран и не перейдет в спящий режим.
Единственный недостаток: насколько я знаю, Mobility Center доступен только на мобильных компьютерах.
Вы можете написать командный файл, чтобы сделать это. Что-то действительно легкое. В Windows 7 есть команда, позволяющая настроить функции управления питанием. Ваш пакетный файл может быть настроен так, чтобы запрашивать различные функции, и в зависимости от того, как вы ответите, настройки будут изменены. Вот начало. Я использовал эту команду для автоматического отключения функции сна в Windows 7, и она работала хорошо.
Попробуйте NoDoz. Он предотвращает сон во время бега, как бессонница. Но с NoDoz вы также можете передать параметр тайм-аута, как -t 6h13m
чтобы программа автоматически заканчивалась через произвольное время.
В Microsoft PowerToys есть утилита «Пробуждение», которая может блокировать спящий режим на несколько часов.
Ознакомьтесь с документацией здесь: https://learn.microsoft.com/en-us/windows/powertoys/awake .