Usually we forget to turn off the monitor, when we lock our computer. It is a good thing, to save energy. You can configure your operating system to turn off the monitor after sometime. But sometimes, you may change/ disable this setting and forget 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();
SystemEvents.SessionSwitch += new SessionSwitchEventHandler((sender, e) =>
{
switch (e.Reason)
{
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/
Related Content
- How to turn off monitor programmatically using C#
- How to make a form stay always on top
- How to delete a file or folder to Recyclebin
- Setting an application on top other windows using C#
- WebCam in your applications using C#
Share This