private void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e) { switch (e.Reason) { case Microsoft.Win32.SessionSwitchReason.SessionLock: SessionLock?.Invoke(this, EventArgs.Empty); break; case Microsoft.Win32.SessionSwitchReason.SessionUnlock: SessionUnlock?.Invoke(this, EventArgs.Empty); break; } }
bool IWndMessageProcessor.ProcessMessage(Message m) { bool result = true; if (m.Msg == WM.WTSSESSION_CHANGE) { var wParams = (int)m.WParam; if (wParams == WtsApi32.WTS.SESSION_LOCK) { SessionLock?.Invoke(); } else if (wParams == WtsApi32.WTS.SESSION_UNLOCK) { SessionUnlock?.Invoke(); } else { } logger.Debug("WTSSESSION_CHANGE: " + wParams); } return(result); }