Temporarily change energy settings without having to change my power plan in Windows 7

My favorite way of doing this without any additional software is to use the built in Mobility Center of Windows. It can be quickly accessed using the [Windows key]+[X] shortcut of Windows 8:

Opening Mobility Center

Then simply switch Presentation Mode to on.

Turning presentation mode on

As long as this particular mode is on, the computer will not turn off the screen and will not go to sleep.

Only downside: Mobility Center is only available on mobile computers, as far as I know.


There's a free program called Insomnia that will keep a computer awake as long as it's running.

http://dlaa.me/blog/post/9901642


Since the link has already changed once, here is the important part of the program source taken from the link above so that it can be reproduced if the link ever goes down permanently.

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;
}