Click here to Skip to main content
Click here to Skip to main content

How to turn off your monitor when you lock your machine

By , 9 Oct 2012
Rate this:
Please Sign up or sign in to vote.

Usually we forgot to turn off monitor, when we lock our computer. It is a good thing, to save energy. You can configure your operating system to turn off monitor after sometime. But sometimes you may change/ disable this setting and forgot to re-enable it. Here is a code snippet, which will turn off your monitor, while you lock your system. To get the System Lock event, you need to subscribe SessionSwitch event in SystemEvents class. SystemEvents class provides access to system event notifications. And the sessionswitch event occurs when the currently logged-in user has changed. You can find more details about SystemEvents class in MSDN. To turn off monitor combination off SendMessage and HWND_BROADCAST API calls are used. Here is a post about How to turn off monitor programmatically using C#.

And here is the code snippet.

using System.Runtime.InteropServices;
using System.Windows.Forms;
using Microsoft.Win32;

public partial class Form1 : Form
{
    private const int HWND_BROADCAST = 0xFFFF;
    private const int SC_MONITORPOWER = 0xF170;
    private const int WM_SYSCOMMAND = 0x112;

    private const int MONITOR_ON = -1;
    private const int MONITOR_OFF = 2;
    private const int MONITOR_STANBY = 1;

    [DllImport("user32.dll")]
    private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);

    public Form1()
    {
        InitializeComponent();
        //Subscribe for SessionSwith event
        SystemEvents.SessionSwitch += new SessionSwitchEventHandler((sender, e) =>
        {
            switch (e.Reason)
            {
                //If Reason is Lock, Turn off the monitor.
                case SessionSwitchReason.SessionLock:
                    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
                    break;
            }
        });
    }
}

This can be used in a Windows Forms or WPF application.

Happy Programming :)

Update: Find this application on codeplex : http://powersave.codeplex.com/

License

This article, along with any associated source code and files, is licensed under The MIT License

About the Author

Anuraj Parameswaran
Technical Lead
India India
Working as Tech. Lead
 
My blog : dotnetthoughts.net.
You can follow me in twitter : @anuraj
Follow on   Twitter   Google+

Comments and Discussions

 
GeneralMy vote of 4 PinmemberJason Christian15-Oct-12 6:02 
GeneralRe: My vote of 4 PinmemberAnuraj Parameswaran15-Oct-12 7:38 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140421.2 | Last Updated 9 Oct 2012
Article Copyright 2012 by Anuraj Parameswaran
Everything else Copyright © CodeProject, 1999-2014
Terms of Use
Layout: fixed | fluid