Как узнать, какое действие выполнил пользователь, например, выключение, перезагрузка, ожидание, блокировка или выход из системы. Я использовал приведенный ниже код, чтобы проверить его, но я хочу идентифицировать каждый случай и выполнить соответствующее действие.
private static int WM_QUERYENDSESSION = 0x11;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == WM_QUERYENDSESSION)
{
MessageBox.Show(m.Msg.ToString() + " Endsession: this is a logoff, shutdown, or reboot");
systemShutdown = true;
}
// If this is WM_QUERYENDSESSION, the closing event should be
// raised in the base WndProc.
base.WndProc(ref m);
}